使用.Net Core EF如何映射多对一关系?
我正在尝试映射多对一关系。我看到的所有示例都假设您映射了一对一关系(即,与会者具有票证的FK,而票证具有与会者的FK),或者它们假定从属对象将持有主要对象的集合。宾语。我看到的示例是一个Order
和一个OrderStatus
。
Order
的FK为OrderStatus
。但是要在.Net中映射关系,他们需要使用OrderStatus
和List<Order>
和指向订单的[ForeignKey]注释。
这似乎很愚蠢。我想让OrderStatus
知道所有具有该状态的Orders
吗?
示例:
class Order {
long orderId;
OrderStatus status;
...
}
class OrderStatus {
long orderStatusId;
String code;
String description;
int severityLevel;
...
}
在数据库中,“订单”表将具有一个FK列,其中包含orderStatusId。
如何对此进行简单的多对一映射?
答案 0 :(得分:1)
我想让OrderStatus知道所有具有该状态的订单吗?
是的!可能!。编写模型类,如下所示:
public class OrderStatus
{
[Key]
public long orderStatusId { get; set; }
public string string code { get; set; }
public string description { get; set; }
public int severityLevel { get; set; }
...........
}
public class Order
{
[Key]
public long orderId { get; set; }
[ForeignKey("OrderStatus")]
public long orderStatusId { get; set; }
..........
public OrderStatus OrderStatus { get; set; }
}
然后在查询中:
var orders = _dbContext.Orders.Where(o => o.orderStatusId == 1).ToList(); // <-- Here is all the Orders with statusId '1'