EF4 0..1 关系导致错误 2016:无法指定条件
Posted
技术标签:
【中文标题】EF4 0..1 关系导致错误 2016:无法指定条件【英文标题】:EF4 0..1 relationship leads to Error 2016: Condition cannot be specified 【发布时间】:2010-04-09 18:47:54 【问题描述】:这与previous question 非常相似(并且可能是完全相同的问题),但我确实没有充分理解答案,无法确定。
我在 Visual Studio RC1 中使用 Entity Framework 4 来创建一个 azure 服务应用程序(所以它是 .Net 3.5)。我有一个包含很多模式的数据库,如下所示:
Thing ThingType
------------- --------------
Id : int Id : int
Type : int
其中 Thing.Type 引用了一个 ThingType。当 EF4 从数据库中组装模型时,会生成一个错误,内容如下:
错误 2016:无法为列成员“类型”指定条件,因为它被标记为“计算”或“身份”StoreGeneratedPattern。
我不知道如何前进,但显然这是一种非常常见的情况。我非常有信心有人可以帮助我。
【问题讨论】:
【参考方案1】:在 RC1 中存在一个错误,即外键关系不断被标记为 StoreGeneratedPattern="Identity"
。这可能会导致您在此处看到的问题,但我不能肯定地说,因为您的环境不同。查看您的 EDMX 文件,您应该看到 StoreGeneratedPattern="Identity" 只有 Thing 和 ThingType 的 Id 字段,而不是 ThingThingType 关系。
另见http://blog.abodit.com/2010/03/system-data-updateexception-a-value-shared-across-entities-or-associations-is-generated-in-more-than-one-location-check-that-mapping-does-not-split-an-entitykey-to-multiple-store-generated-columns/
Microsoft 已确认此错误已针对 RTM 进行了修复,这很好,因为它会在您每次从数据库中更新模型时影响您!
【讨论】:
以上是关于EF4 0..1 关系导致错误 2016:无法指定条件的主要内容,如果未能解决你的问题,请参考以下文章
错误 175:在配置中找不到指定的存储提供程序,或者对 EF4 和 SQL Server CE 4 无效
更新旧应用程序导致此错误 => 无法确定任务 ':app:compileDebugJavaWithJavac' 的依赖关系