使用EF4和SQLite ADO.NET提供程序时,我一直在努力解决以下问题:
我有一个带有TPT层次结构的模型:有一个抽象基础实体(Source),然后是第一级子实体(SingleSource和MultipleSource),以及第二级子实体(例如SingleSource下的FileSource)。
在我的应用程序中,我正在创建FileSource对象,并将它们添加到我的上下文中。一旦我在新的FileSource的每个Add操作之后调用了context.SaveChanges(),一切正常但是当我向我的上下文添加几个FileSource然后调用SaveChanges一次以保存它们时,我得到一个更新异常:
无法确定FK_Source_SingleSource_0关系的主要结尾。 多个添加的实体可能具有相同的主键
我注意到当我创建新的FileSource对象时,EF将它们的Id设置为0,即使它是一个标识字段(StoreGeneratedPattern = SSDL和CSDL上的标识),我怀疑这就是它失败的原因但我找不到任何解决方案,所以任何帮助都将不胜感激。
谢谢,
西蒙