我有一个表,其主键是INT ...我有另一个表,它与第一个表有外键关系,但它是一个NULLABLE INT。
这是完全可以的,并且100%可以接受SQL ...但是LINQ to SQL抱怨不匹配的类型(“int to Nullable [int]”)。
错误消息:无法创建关联“Store_People”。属性没有匹配的类型:“PersonID”,“ID”。
如何解决这个问题,以便设计师停止对SQL的正确使用率100%大喊大叫?
答案 0 :(得分:8)
我发现了问题。只有在父类没有Nullable字段作为键的情况下,才能创建关联。
所以,这个:
会导致此错误:
......但是这个:
将完美运作。
这看起来像一个错误(或者至少是LINQ to SQL的愚蠢)......但除此之外,我喜欢它。
答案 1 :(得分:3)
我现在在DBML中确实存在这种情况,并且它运行正常。
答案 2 :(得分:0)
这是我扔在一起的东西。 Table2的Table1Id列是Table1的可为空的外键。我甚至投入了一些数据记录并测试了一些Linq查询......
编辑:因为我正在为破损的链接获得一些downvotes(显然)因为这个问题是6岁而且我使用的主机还没有幸存下来......这是一个更新版本。