我有一个客户和一个订单表。订单表包含 CustomerId 字段,该字段指向 Customer.Id 列。我正在使用以下
检索订单var order = (from a in context.Order
where a.id == OrderId select a).FirstOrDefault();
还有另一个审核表,其中也包含CustomerId列。我正在审计表中创建一个条目,并希望从上面的查询获得的订单更新CustomerId,但是,order.customer对象为null。我做错了什么?
答案 0 :(得分:3)
要包含您的客户数据,您需要包含以下代码的表格。
var order = (from a in context.Order
where a.id == OrderId select a)
.Include(b => b.Customer)
.FirstOrDefault();
然而,Order和Customer之间需要有一个链接才能正常工作。
答案 1 :(得分:3)
我猜您的Customer
实体上有一个Order
导航属性,其中CustomerID
字段。您需要使用Customer
函数明确加载Include
实体。
var order = (from a in context.Order.Include("Customer")
where a.id == OrderId select a).FirstOrDefault();
// Check if the result is null
if(order != null)
{
/// Do stuff...
}
答案 2 :(得分:0)
这是解决方案:
var order = (from a in context.Order
where a.id == OrderId select a).FirstOrDefault();
var customer = context.Customer.Find(order.CustomerId);