我有实体:
[Table("Currency")]
public class Currency
{
[Key]
public int CurrencyId { get; set; }
public string Name { get; set; }
public char Symbol { get; set; }
}
[Table("Invoice")]
public class Invoice
{
[Key]
public int InvoiceId { get; set; }
public int CurrencyId { get; set; }
public int Amount { get; set; }
// public virtual ICollection<Currency> CurrencyList { get; set; }
}
我需要每张发票都包含数据库中所有可能的货币。如果我只是在注释行中设置导航属性,那么系统会尝试隐式创建自己的实际存在的外键约束,然后给出错误。
有没有办法让这个导航道具没有FK?
答案 0 :(得分:0)
我不相信导航属性是您正在寻找的。这篇msdn文章更深入地讨论了导航属性http://msdn.microsoft.com/en-us/library/vstudio/bb738520(v=vs.100).aspx
每个对象都可以为其参与的每个关系都有一个导航属性。
这句话具体而言,修改关系和导航关系这两个部分更多地指出这些属性专门针对EF关系的事实,如果两个对象之间没有关系,则可能不应该是导航属性。
@carlosfiguira对辅助类有一个好主意,我同意这一点。但通过向CodeFirst模型添加帮助程序代码来解决您的问题。
我的建议是创建一个具有发票属性和货币列表的复合模型。我之前特别是在Web模式中完成了这个,根据用例,这种类型的复杂对象可能被称为ViewModel。