c# - 使用 EF 查询数据不会返回所有实体

标签 c# windows entity-framework wcf-data-services

我目前正在将一个项目从 LINQ to SQL 更改为 LINQ to Entity。我有以下实体:

Customer -> Address

我使用此方法通过 WCF 数据服务异步查询我的数据库:

public static async Task<IEnumerable<TResult>> ExecuteAsync<TResult>(this DataServiceQuery<TResult> query)
{
    var queryTask = Task.Factory.FromAsync<IEnumerable<TResult>>(query.BeginExecute(null, null), (asResult) =>
    {
        var result = query.EndExecute(asResult);
        return result;
    });

    return await queryTask;
}

如果我对该实体进行查询,我可以访问客户,但地址仍然为空:

var query = (DataServiceQuery<Customer>)client.Customer.OrderBy(session => session.LastName);
var data = await query.ExecuteAsync();
Test2.Text = data.LastName(); //returns the lastname
Test2.Text = data.First().Address.Stret; //Address is Null

我检查了数据库,外键设置正确。为什么地址为空?我必须以其他方式查询吗?在 LINQ to SQL 中可以访问相关实体,如何在 LINQ to Entity 中将其存档?

最佳答案

[nkvu - 移 Action 为原始海报指示的答案。还强烈推荐@RAS 对这个问题的回答,以解释不同的加载策略。]

也许尝试使用 [Expand]( http://msdn.microsoft.com/en-us/library/ee358709.aspx ) 在构建查询以加载相关实体时调用 Address。

关于c# - 使用 EF 查询数据不会返回所有实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15666571/

相关文章:

c++ - n>0 的 Sleep(n) 是否会将 CPU 时间让给其他线程

Windows PSQL 命令行 : is there a way to allow for passwordless login?

.net - 其他人后悔使用 Entity Framework 吗?

c# - 如何允许具有管理员权限的用户访问 Controller

c# - 如何在 ASP.NET MVC 中支持具有回退形式的 NTLM 身份验证?

c# - 自学与训练有素的专业开发人员有何不同?

c# - Windows 服务 DbResource Provider

entity-framework - 无法在 MVC5 Microsoft.AspNet.Identity.EntityFramework.IdentityRole 中添加新角色?

c# - MVC 5 本地化工作在 localhost 但不是服务器

c# - DataGrid Column Header with filter box 绑定(bind)错误