LINQ to SQL - ForeignKey中的Nullable INT ="无法创建关联..."

Tim*_*uri 9 foreign-keys associations linq-to-sql

我有一个表有一个INT的主键...我有另一个表,与第一个表有一个外键关系,但它是一个NULLABLE INT.

这是完全可以的,并且100%可以接受SQL ...但是LINQ to SQL抱怨不匹配的类型("int to Nullable [int]").

错误消息:无法创建关联"Store_People".属性没有匹配的类型:"PersonID","ID".

我如何解决这个问题,以便设计师不再对SQL的正确使用率100%大喊大叫?

Tim*_*uri 8

我发现了这个问题.仅当父类没有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

会很完美.

这看起来像一个bug(或者至少是LINQ to SQL的愚蠢)......但除此之外,我喜欢它.

  • SQL绝对允许您为不可为空的主键创建可为空的外键.我不认为这个解决方案能像他认为的那样有效.你最终得到了一个回来的对象,而相反的关联则会给出一个对象列表. (3认同)

Gal*_*boy 0

这是我整理的。Table2 的 Table1Id 列是 Table1 的可为空的外键。我什至放入了一些数据记录并测试了一些 Linq 查询......

在此输入图像描述

编辑:因为我(显然)对损坏的链接收到了一些反对票,因为这个问题已经有 6 年历史了,而且我使用的主机没有幸存下来......这是一个更新版本。