LINQ-to-SQL中可与Nglable一对一关系的整数关键字

时间:2010-05-31 22:47:43

标签: .net linq linq-to-sql one-to-one

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

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

  

无法创建关联“Bar_Foo”。属性没有匹配的类型:“ID”,“BarID”。

有解决方法吗?

1 个答案:

答案 0 :(得分:2)

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