C# 如何在实体框架中插入标识列的值?
我在sql表中创建了两列,一列是标识列,另一列是varchar列。我需要从值1000开始生成标识列。我尝试了下面的代码段,但出现错误“更新条目时出错。有关详细信息,请参阅内部异常…”C# 如何在实体框架中插入标识列的值?,c#,entity-framework,C#,Entity Framework,我在sql表中创建了两列,一列是标识列,另一列是varchar列。我需要从值1000开始生成标识列。我尝试了下面的代码段,但出现错误“更新条目时出错。有关详细信息,请参阅内部异常…” 我想这是一个非常基本的问题,因为我是EF新手,所以请帮我整理一下。您不能为标识列赋值。这毫无意义 如果您想更改标识列的起始值,为什么不通过一个简单的脚本来完成呢 context.Database .ExecuteSqlCommand("ALTER TABLE Place ALTER COLUMN Id
我想这是一个非常基本的问题,因为我是EF新手,所以请帮我整理一下。您不能为标识列赋值。这毫无意义 如果您想更改标识列的起始值,为什么不通过一个简单的脚本来完成呢
context.Database
.ExecuteSqlCommand("ALTER TABLE Place ALTER COLUMN Id IDENTITY (1000,1)");
这将为表中的第一行插入
Place.Id
为1000,然后插入10011002。。。接下来的行也是如此。您只是想在EF中学习语法吗?我之所以这样问,是因为您可以在SSMS()中的列上设置种子,让sql server生成标识。设置标识种子和标识增量的值
当列为identity时,从实体框架插入记录将引发以下错误。
当identity\U insert设置为OFF时,无法在表“我的实体”中为identity列插入显式值。
为避免错误,请设置实体属性StoreGeneratedPattern=“Identity”
上述帖子中提到的ExecuteSqlCommand()命令将无法像
a另一个解决方案提到了我在datacontext中找不到任何称为数据库的内容。请告诉我如何设置标识列,并在实体框架中使用它。如果您使用的是实体框架4.0,请使用此
上下文。ExecuteStoreQuery
您可以使用类似属性(s=>s.Id)的fluent api设置列标识.HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity)代码>。这非常有用。是否可以通过EF模型设计器进行设置?
context.Database
.ExecuteSqlCommand("ALTER TABLE Place ALTER COLUMN Id IDENTITY (1000,1)");
<EntityType Name="MY_ENTITY">
<Key>
<PropertyRef Name="UserID" />
</Key>
<Property Name="RecordID" Type="int" StoreGeneratedPattern="Identity" Nullable="false" />