[英]C# EF Navigation Properties on Primary Key
我对实体框架的知识有限,并且在对象关系方面遇到了一些问题。 我有以下实体:
public class Reseller
{
[Key]
public int Id { get; set; }
public string Name { get; set; }
public ResellerLevel? ResellerLevel { get; set; }
public ResellerLevel? HosterLevel { get; set; }
public ResellerMail Mail { get; set; }
public virtual ObservableCollection<ResellerMail> Mails { get; set; }
public Reseller()
{
Mails = new ObservableCollection<ResellerMail>();
}
}
public class ResellerMail
{
[Key, ForeignKey("Reseller")]
public int Id { get; set; }
public string Name { get; set; }
public string Mail { get; set; }
public string Display
{
get
{
return String.Format("{0} <{1}>", Name, Mail);
}
}
public virtual Reseller Reseller { get; set; }
}
我正在尝试建立以下2种关系:
代理商和邮件之间一对多:基本上是链接到代理商的邮件列表。
一对一关系从下拉列表中选择经销商的邮件。 它可能只是邮件的ID,但我想为其添加导航属性。
我将如何处理这样的事情?
首先,请勿在模型中使用ObservableCollection
,因为此类型用于与UI交互(您不应直接在模型中进行此操作)。
至于两个问题:
对于1:只需为ResellerEmail
设置虚拟集合。 这意味着您的模型将如下所示:
public class Reseller
{
[Key]
public int Id { get; set; }
public string Name { get; set; }
public ResellerLevel? ResellerLevel { get; set; }
public ResellerLevel? HosterLevel { get; set; }
public virtual ICollection<ResellerMail> Mails { get; set; }
public Reseller()
{
Mails = new ICollection<ResellerMail>();
}
}
对于第二。 您可能在ForeignKey
下有一个Reseller
类型的对象。 您可以尝试如下操作:
[Key, ForeignKey("Reseller")]
public int Id { get; set; }
public Reseller Reseller { get; set; }
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.