我有一个ASP.NET MVC项目,我正在为我的用户使用Identity框架。
该项目涉及Customers
和Agents
,它们只是常规身份用户的不同角色。
名为Orders
的表同时属于Customer
和Agent
。
public class Order
{
[ForeignKey("User")]
public int CustomerID { get; set; }
public virtual List<ApplicationUser> Customer { get; set; }
[ForeignKey("User")]
public int AgentID { get; set; }
public virtual List<ApplicationUser> Agent { get; set; }
}
但是这个模型定义在使用add-migration
时不会起作用并产生错误的SQL。
首先使用代码完成此操作的最佳方法是什么?我应该显式定义外键,还是最好创建连接表以避免对IdentityUser
表的2外键引用?
答案 0 :(得分:0)
我用Order的这个类定义修复了这个:
public class Order
{
public int OrderID { get; set; }
public virtual ApplicationUser Customer { get; set; }
public virtual ApplicationUser Agent { get; set; }
}
实体用这个正确地计算出其余部分。
答案 1 :(得分:0)
一个订单只能属于一个客户和一个代理,因此无需使用Collection for Customer和Agent。代替
public class Order
{
[ForeignKey("Customer")]
public int CustomerID { get; set; }
public virtual ApplicationUser Customer { get; set; }
[ForeignKey("Agent")]
public int AgentID { get; set; }
public virtual ApplicationUser Agent { get; set; }
}