.net – LINQ-to-SQL中与整数键的一对一可空关系

我有两个对象(Foo和Bar),它们之间有一对一或零关系.因此,Foo具有对Bar.ID的可空外键引用和(
nullbusted)唯一索引以强制执行“1”方. Bar.ID是一个i​​nt,因此Foo.BarID是一个可以为null的int.

问题出现在.NET类型到SQL数据类型的LINQ-to-SQL DBML映射中.由于int在.NET中不是可空类型,因此它包含在Nullable< int>中.但是,这与int的类型不同,因此当我尝试在它们之间创建OneToOne关联时,Visual Studio会给出此错误消息:

Cannot create an association “Bar_Foo”. Properties do not have matching types: “ID”, “BarID”.

有没有解决的办法?

最佳答案 到目前为止,我通过将Bar.ID(主键)设置为CanBeNull =“true”来解决这个问题,这绝对是丑陋的.我希望在这里找到更好的解决方案.

点赞