【发布时间】:2017-07-30 16:31:01
【问题描述】:
在 Windows 10 UWP 应用程序中,我正在使用带有 Entity Framework Core 1.1 的本地 sqlite 数据库,除此之外它现在工作正常:
我正在尝试使用简单的 linq 查询将相关对象包含到我的用户对象中。我测试了一些查询,但是带有 include 方法和 select 限制的 lambdas 不起作用。
代码示例:
public async Task<IUser> GetAsync(Guid id)
{
// Working, but useless
var user = await this.DbSet.Include(u => u.ProfileNavigation).FirstOrDefaultAsync();
// Returns null
var user1 = await this.DbSet.Include(u => u.ProfileNavigation).FirstOrDefaultAsync(u => u.IdGuid == id);
// Returns null
var user2 = await this.DbSet.Where(u => u.IdGuid == id).Include(u => u.ProfileNavigation).FirstOrDefaultAsync();
// Returns null linked object
User user3 = await this.DbSet.SingleOrDefaultAsync(u => u.IdGuid == id);
await this.Context.Entry(user3).Reference(p => p.ProfileNavigation).LoadAsync();
// Result valid but painfull
User res = await (from u in this.DbSet
join p in this.Context.Set<Profile>() on u.ProfileGuid equals p.IdGuid
where u.IdGuid == id
select new User
{
Id = u.Id,
ProfileId = u.ProfileId,
ManagerUserId = u.ManagerUserId,
RegionId = u.RegionId,
Number = u.Number,
Password = u.Password,
FirstName = u.FirstName,
LastName = u.LastName,
Email = u.Email,
HideOnBoardAppConstr = u.HideOnBoardAppConstr,
ModifiedByUserId = u.ModifiedByUserId,
ProfileNavigation = p
}).FirstOrDefaultAsync();
return res;
}
有人遇到过这个问题并解决了吗?
提前致谢。
【问题讨论】:
标签: c# entity-framework linq sqlite uwp