[英]How do I call a method from within a linq query that is retrieving from an Entity Framework model
我有以下代碼
return (_entities.Users.Select(profile => new ProfileUserListItemDto
{
Email = profile.Email,
FirstName = profile.FirstName,
Id = profile.Id,
LastName = profile.LastName,
Role = DtoEntityLookups.EntityRoleToDtoRole(profile.Role),
TimeZone = profile.TimeZone
})).ToList();
public static RoleTypeEnum EntityRoleToDtoRole(Role role)
{
if (role == null)
throw new NoNullAllowedException("Null role supplied to EntityRoleToDtoRole method");
if (role.Id.ToString() == RolesGuid.AdministratorGuid)
return RoleTypeEnum.Administrator;
if (role.Id.ToString() == RolesGuid.ClientGuid)
return RoleTypeEnum.Client;
throw new InvalidDataException("Unknown role supplied");
}
調用時,出現以下錯誤
LINQ to Entities無法識別RoleTypeEnum EntityRoleToDtoRole(User.Entities.Entities.Role)'方法,並且該方法無法轉換為商店表達式。
如何將EntityRoleToDtoRole
轉換為可從Entity Framework查詢中調用?
您需要使用Users.AsEnumerable()才能在linq中調用方法。
return (_entities.Users.AsEnumerable().Select(profile => new ProfileUserListItemDto
{
Email = profile.Email,
FirstName = profile.FirstName,
Id = profile.Id,
LastName = profile.LastName,
Role = DtoEntityLookups.EntityRoleToDtoRole(profile.Role),
TimeZone = profile.TimeZone
})).ToList();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.