我有两个对象(Foo
和Bar
),它们之间有一对一或零关系。因此,Foo具有对Bar.ID的可空外键引用和(nullbusted)唯一索引以强制执行“1”端。 Bar.ID是一个int,所以Foo.BarID是一个可以为空的int。
问题出现在.NET类型到SQL数据类型的LINQ-to-SQL DBML映射中。由于int
在.NET中不是可空类型,因此它包含在Nullable<int>
中。但是,这与int
的类型不同,因此当我尝试在它们之间创建OneToOne关联时,Visual Studio会给出此错误消息:
无法创建关联“Bar_Foo”。属性没有匹配的类型:“ID”,“BarID”。
有解决方法吗?
答案 0 :(得分:2)
到目前为止,我通过将Bar.ID(主键)设置为CanBeNull="true"
来解决这个问题,这绝对是丑陋的。我希望在这里找到更好的解决方案。