如果我定义一个序列和这样的表:
testTab d = new testTab();
d.name1 = "sss";
using (var db = new ABEntities2())
{
db.testTabs.Add(d);
db.SaveChanges();
}
然后尝试使用EF 6插入数据:
StoreGeneratedPattern
我为Identity
列设置了iden
到SaveChanges
,它没有表现出来,DbUpdateConcurrencyException
抛出的异常是<EntitySetMapping Name="testTabs">
<EntityTypeMapping TypeName="ABModel.testTab">
<MappingFragment StoreEntitySet="testTab">
<ScalarProperty Name="iden" ColumnName="iden" />
<ScalarProperty Name="name1" ColumnName="name1" />
<ScalarProperty Name="name2" ColumnName="name2" />
</MappingFragment>
</EntityTypeMapping>
</EntitySetMapping>
:
存储更新,插入或删除语句影响了意外的行数(0)。自实体加载后,实体可能已被修改或删除。刷新ObjectStateManager条目。
我做错了什么?
生成的testTabs:
var item = $("ul").closest("li");
var item2 = item.closest(".active");
item2.toggleClass("active");
if (item2.next("li") != null) {
item2.next("li").toggleClass("active");
} else {
item.toggleClass("active");
}
答案 0 :(得分:0)
我会检查这些事情
确保[Key]
班级testTabs
正在设置
确保您同时没有ABEntities2 (DbContext)
的两个不同实例
答案 1 :(得分:0)
看起来唯一的问题是使用sequence
,因为我将表格定义更改为
CREATE TABLE [dbo].[testTab]
(
[iden] [bigint] identity(1,1) NOT NULL ,
[name1] [nchar](10) NULL,
[name2] [nchar](10) NULL,
PRIMARY KEY CLUSTERED
(
[iden] ASC
)
) ON [PRIMARY]
identity
代替sequence
并重新创建模型,一切正常。在sql2012中引入的sequence
似乎无法正确使用EF6。