【问题标题】:Nullable One To One Relationships with Integer Keys in LINQ-to-SQLLINQ-to-SQL 中与整数键的可空一对一关系
【发布时间】:2010-05-31 22:47:42
【问题描述】:

我有两个对象(FooBar),它们之间存在一对零或一的关系。因此, 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”。

有没有办法解决这个问题?

【问题讨论】:

  • 遇到同样的问题。你找到解决办法了吗?

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


【解决方案1】:

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

【讨论】:

  • 我绝对不想这样做,因为我们会定期刷新 dbml 文件,它会被覆盖。你有没有找到更好的方法?
  • 不,从来没有,虽然我很久以前就不再看了。也许您的 dbml 刷新工具可以设置为重新实现此更改?
猜你喜欢
  • 2012-10-07
  • 2023-04-05
  • 1970-01-01
  • 2020-10-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多