我有一个主键是 INT 的表...我有另一个表,它与第一个表有外键关系,但它是一个 NULLABLE INT。
这完全没问题,并且 100% 可以被 SQL 接受……但是 LINQ to SQL 抱怨类型不匹配(“int to Nullable[int]”)。
错误消息:无法创建关联“Store_People”。属性没有匹配的类型:“PersonID”、“ID”。
我该如何解决这个问题,以便设计师停止对 100% 正确使用 SQL 大喊大叫?
我有一个主键是 INT 的表...我有另一个表,它与第一个表有外键关系,但它是一个 NULLABLE INT。
这完全没问题,并且 100% 可以被 SQL 接受……但是 LINQ to SQL 抱怨类型不匹配(“int to Nullable[int]”)。
错误消息:无法创建关联“Store_People”。属性没有匹配的类型:“PersonID”、“ID”。
我该如何解决这个问题,以便设计师停止对 100% 正确使用 SQL 大喊大叫?
我发现了问题。只有当父类没有 Nullable 字段作为键时,您才能创建关联。
所以这:
替代文字 http://www.singingeels.com/Articles/UserImage.aspx?ImageID=43d83ac4-707d-47fc-832c-588261e6a5d7
将导致此错误:
替代文字 http://www.singingeels.com/Articles/UserImage.aspx?ImageID=19ed54aa-9f4f-4d5c-ba18-4996509d2da7
...但是这个:
替代文字 http://www.singingeels.com/Articles/UserImage.aspx?ImageID=0e09affd-2134-4712-999b-7e792f6e081b
将完美地工作。
这看起来像一个错误(或者至少是 LINQ to SQL 的愚蠢)......但除此之外我更喜欢它。
我现在正好在 DBML 中遇到这种情况,并且工作正常。
这是我一起扔的。Table2 的 Table1Id 列是 Table1 的可为空的外键。我什至投入了一些数据记录并测试了一些 Linq 查询......
编辑:由于我(显然)对断开的链接投了一些反对票,因为这个问题已有 6 年历史,而且我使用的主机没有幸存下来……这是一个更新的版本。