Inserting in non identity ID column:
Table:
CREATE TABLE [dbo].[TestTable]( [Id] [int] NOT NULL, [Name] [nvarchar](50) NULL, CONSTRAINT [PK_TestTable] PRIMARY KEY CLUSTERED ( [Id] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY]
Model:
using System;
using System.Data.Entity;
using System.ComponentModel.DataAnnotations;
namespace NoIdent.Models
{
	[Table("TestTable")]
	public class TestTable
	{
		[DatabaseGenerated(DatabaseGeneratedOption.None)]
		public int Id { get; set; }
		public string Name { get; set; }
	}
	public class testNoIdentEntities : DbContext
	{	
		public DbSet TestTable { get; set; }
	}
}
Without [Table("TestTable")], EF will create TestTableS - EF always add S (plural)
[DatabaseGenerated(DatabaseGeneratedOption.None)] is mandatory, to tell EF that ID is not identity
Create controller with scaffolding. Modify Create and Index view:
Create:
<fieldset> <legend>TestTable</legend> <div class="editor-label"> @Html.LabelFor(model => model.Id) </div> <div class="editor-field"> @Html.EditorFor(model => model.Id) @Html.ValidationMessageFor(model => model.Id) </div> <div class="editor-label"> @Html.LabelFor(model => model.Name) </div> <div class="editor-field"> @Html.EditorFor(model => model.Name) @Html.ValidationMessageFor(model => model.Name) </div> <p> <input type="submit" value="Create" /> </p> </fieldset>
Index:
<table>
	<tr>
		<th>
			Id
		</th>
		<th>
			Name
		</th>
		<th></th>
	</tr>
	@foreach (var item in Model) {
		<tr>
			<td>
				@Html.DisplayFor(modelItem => item.Id)
			</td>
	
			<td>
				@Html.DisplayFor(modelItem => item.Name)
			</td>	
			
			<td>
				@Html.ActionLink("Edit", "Edit", new { id=item.Id }) |
				@Html.ActionLink("Details", "Details", new { id=item.Id }) |
				@Html.ActionLink("Delete", "Delete", new { id=item.Id })
			</td>
		</tr>
	}
</table>
and that's all folks!