当前位置:  开发笔记 > 数据库 > 正文

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

如何解决《LINQtoSQL-ForeignKey中的NullableINT="无法创建关联"》经验,为你挑选了1个好方法。

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

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

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

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



1> Timothy Khou..:

我发现了这个问题.仅当父类没有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绝对允许您为不可为空的主键创建可为空的外键.我不认为这个解决方案能像他认为的那样有效.你最终得到了一个回来的对象,而相反的关联则会给出一个对象列表.
推荐阅读
夏晶阳--艺术
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有