我有供应商模型,我有一个新闻项目模型。我可以在我的新闻项目模型中选择我的供应商模型吗?
换句话说......新闻模型是一个将变成我的mvc项目内部视图的类。此视图将成为将创建新闻项的表单。我们希望选择将供应商与特定新闻项相关联(新闻项目与供应商有关,从下拉列表中选择供应商),但我们希望这是可选的。
如果我将供应商设置为新闻项目的导航属性,那是否意味着需要供应商?我该如何做到这一点?
感谢您的任何提示。
答案 0 :(得分:1)
您的关系必须是可空的,您可以在DbContext类的OnModelCreating事件中设置此关系。这是一个类似的问题。
答案 1 :(得分:1)
在像这样的类中的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
,分别表示可选属性或必需属性。 / p>