【问题标题】:Entity Navigation Property Question实体导航属性问题
【发布时间】:2011-08-08 17:50:31
【问题描述】:
我有一个供应商模型,我有一个新闻项目模型。我可以在我的新闻项目模型中将我的供应商模型设为可选吗?
换句话说...新闻模型是一个类,它将在我的 mvc 项目中变成一个视图。这个视图将成为一个创建新闻项目的表单。我们想要将供应商与特定新闻项相关联的选项(新闻项是关于供应商的,从下拉列表中选择供应商),但我们希望这是可选的。
如果我将 Vendor 设置为 News 项的导航属性,这是否意味着需要 vendor?我将如何做到这一点?
感谢任何提示。
【问题讨论】:
标签:
entity-framework
asp.net-mvc-3
【解决方案2】:
在这样的类中的 EF 4.1 中...
public class News
{
public int NewsId { get; set; }
public Vendor Vendor { get; set; }
}
...供应商将是一个可选导航属性(Vendor = null 是允许的)。 EF 将假定数据库中有一个可为空的外键列。
如果你想在模型中公开一个外键,你必须确保 FK 属性可以为空才能有一个可选的关系:
public class News
{
public int NewsId { get; set; }
public int? VendorId { get; set; }
public Vendor Vendor { get; set; }
}
如果具有不可为空的外键属性 (public int VendorId { get; set; }),EF 将假定一个必需导航属性。
除了这些默认设置之外,您还可以自定义与数据注释或 Fluent API 的关系。
当您在 Visual Studio 的模型设计器中工作时,可以选择将关系结束的多重性设置为 0...1 或 1,分别表示可选或必需属性。