我有一个供应商模型,我有一个新闻项目模型。我可以使我的供应商模型在我的新闻项目模型中是可选的吗?实体导航属性问题
换句话说,... ...消息模型是会变成我的MVC项目的内部的视图类。这种观点将成为一种将创造新闻的形式。我们希望将供应商与特定新闻项目相关联(该新闻项目关于供应商,从下拉列表中选择供应商),但我们希望这是可选的。
如果我将Vendor设置为News项目的导航属性,是不是表示需要供应商?我怎么做到这一点?
感谢您的任何提示。
我有一个供应商模型,我有一个新闻项目模型。我可以使我的供应商模型在我的新闻项目模型中是可选的吗?实体导航属性问题
换句话说,... ...消息模型是会变成我的MVC项目的内部的视图类。这种观点将成为一种将创造新闻的形式。我们希望将供应商与特定新闻项目相关联(该新闻项目关于供应商,从下拉列表中选择供应商),但我们希望这是可选的。
如果我将Vendor设置为News项目的导航属性,是不是表示需要供应商?我怎么做到这一点?
感谢您的任何提示。
您的关系必须为空,您可以在DbContext类的OnModelCreating事件中设置此关系。这里有一个类似的问题。
在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
,分别表示可选属性或必需属性。
感谢您的解释。我还在学习! – MissioDei