我得到这个错误。
var query = DbContext.Registries.AsNoTracking().ProjectTo<Registry>(Mapper.ConfigurationProvider);
if (onlyMine) {
query = from registry in DbContext.Registries.AsNoTracking()
join member in DbContext.RegistryMembers.AsNoTracking() on registry.Id equals member.RegistryId into members
from membership in members.DefaultIfEmpty()
where onlyMine && membership.MemberId == userId
select new Registry {
Id = registry.Id,
Customer = new Customer {
Id = registry.Customer.Id,
Name = registry.Customer.Name,
},
Title = registry.Title,
Membership = membership.Role
};
}
if (!string.IsNullOrWhiteSpace(options.Search)) {
var term = options.Search.Trim().ToLowerInvariant();
query = query.Where(x => x.Title.ToLower().Contains(term) || x.Customer.Name.ToLower().Contains(term));
}
return await query.ToResultSetAsync(options);
我得到以下错误
系统操作无效异常:LINQ表达式'DbSet .LeftJoin(外部:数据集,内部:d =〉EF。属性(d,“客户ID”),外部键选择器:属性(d 0,“Id”),内部键选择器:(o,i)=〉新的透明标识符〈数据库注册表,数据库客户〉(外部= o,内部= i))。OrderBy(d =〉EF。属性(d.内部,“Id”)== null?null:无法翻译新客户{ Id = d.Inner.Id,Name = d.Inner.Name } .Name)“。请以可翻译的形式重写查询,或者通过插入对AsEnumerable()、AsAsyncEnumerable()、ToList()或ToListAsync()的调用来显式切换到客户端计算。
1条答案
按热度按时间6uxekuva1#