c# - 导航对象为空;为什么?

标签 c# linq entity-framework foreign-key-relationship

我有一个Customer 和一个Order 表。 Order 表包含一个指向 Customer.Id 列的 CustomerId 字段。我正在使用以下命令检索订单

var order = (from a in context.Order 
where a.id == OrderId select a).FirstOrDefault();

还有另一个 Auditing 表也有一个 CustomerId 列。我正在审计表中创建一个条目,并希望根据从上面的查询中获取的订单更新 CustomerId,但是,order.customer 对象为空。我做错了什么?

最佳答案

我猜测您的 Order 实体上有一个 Customer 导航属性,带有一个 CustomerID 字段。您需要使用 Include 函数显式加载 Customer 实体。

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...
}

关于c# - 导航对象为空;为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20576233/

相关文章:

c# - 如何让一些碰撞器忽略 Unity 3D 中的触发器

c# - 是否可以使用 Monitor.Enter 获取正在等待的排队线程的计数?

c# - 无法将应用程序注册到 Office 365

c# - 比较两个列表以搜索常见项目

c# - 从 Linq To Sql 对象获取字段名称

asp.net-mvc - MVC3 - 使用 Include 时对数据库查询进行排序

c# - 如果一项操作失败则回滚

c# - 我可以以某种方式最小化 C# 中的 7-zip 输出/日志吗?

c# - 如何首先使用 EF 4 代码重构代码/数据库模式 - 数据迁移

c# - 如何首先在代码中创建函数?