[英]How to insert value for a identity column in Entity Framework?
我在sql表中创建了两列,一列是标识列,另一列是varchar列。 我需要从值1000开始生成标识列。我尝试了下面的代码段,但收到错误消息“更新条目时发生错误。有关详细信息,请参阅内部异常。”
Place objPlace = new Place();
objPlace.PNAME = "place 3";
//objPlace.PID = 1003; //purposefully commented for auto increment
objContext.Places.AddObject(objPlace);
objContext.SaveChanges();
我想这是一个非常基本的问题,因为我是EF新手,所以请帮助我进行梳理。
您是否只是想在EF中学习语法? 我问的原因是因为您可以在SSMS的列上设置种子( http://msdn.microsoft.com/en-gb/library/aa933196%28v=sql.80%29.aspx )
您不能将值分配给“标识”列。 它毫无意义。
如果要更改标识列的起始值,为什么不通过简单的脚本来更改呢?
context.Database
.ExecuteSqlCommand("ALTER TABLE Place ALTER COLUMN Id IDENTITY (1000,1)");
这将在表的第一行中插入Place.Id
为1000,然后在表的第一行中插入1001,1002 ...,依此类推。
让sql server生成身份。 设置标识种子和标识增量的值。
当column为identity时,从实体框架插入记录将引发以下错误。 当IDENTITY_INSERT设置为OFF时,无法为表'MY_ENTITY'中的Identity列插入显式值。 为了避免错误设置实体属性StoreGeneratedPattern =“ Identity”
<EntityType Name="MY_ENTITY">
<Key>
<PropertyRef Name="UserID" />
</Key>
<Property Name="RecordID" Type="int" StoreGeneratedPattern="Identity" Nullable="false" />
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.