使用数据库列而不是实体类型属性定义关联
public class Order {
public int OrderID {get; set;}
public DateTime DateOrdered { get; set; }
public ICollection<OrderLine> OrderLines { get; set; }
}
public class OrderLine{
public int OrderLineID { get; set; }
public int OrderID {get; set; } // I want to remove this
public string ItemName { get; set;}
public Int Qty { get; set; }
}
我如何使用 Fluent API 映射这些?我在存储库模式中使用它们,其中 Order
将是聚合的根。因此,我不希望 OrderLine 引用 Order
或具有 OrderID
。由于 OrderLine
仅因为它是 Order
的子项才有意义。
目前我正在使用这个:
HasMany<OrderLine>(x => x.OrderLines).WithRequired().HasForeignKey(x => x.OrderID);
我在这里使用现有的数据库结构,理想情况下我会使用数据库列名称来映射它。因此,以某种方式告诉它使用 tblOrderLine.colOrderId
而不是 OrderLine.OrderID
。
public class Order {
public int OrderID {get; set;}
public DateTime DateOrdered { get; set; }
public ICollection<OrderLine> OrderLines { get; set; }
}
public class OrderLine{
public int OrderLineID { get; set; }
public int OrderID {get; set; } // I want to remove this
public string ItemName { get; set;}
public Int Qty { get; set; }
}
How would I map these using the Fluent API? I am using these in a repository pattern where Order
will be the root of the aggregate. As such I do not want OrderLine to have a reference to Order
or have an OrderID
. Since the OrderLine
only makes any sense because its a child of Order
.
Currently I am using this:
HasMany<OrderLine>(x => x.OrderLines).WithRequired().HasForeignKey(x => x.OrderID);
I am using an existing database structure here and ideally I would map this using the database column name. So somehow tell it to use tblOrderLine.colOrderId
rather then OrderLine.OrderID
.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您可以使用
Map()
方法来映射您的FKYou can use the
Map()
method to map your FK