[英]Linq query for complex type model
我在一個模型中有多個表的類,如下所示:
public partial class Nurse
{
public long Id { get; set; }
public Nullable<System.Guid> Guid { get; set; }
public long UserId { get; set; }
public string Name {get;set;}
public User user {get;set;}
}
我想像這樣使用join用所有詳細信息填充Nurse類的所有數據。
public List<Nurse> GetCareNurses(int id)
{
var result = (from r in _context.Nurses
join u in _context.Users on r.UserId equals u.Id
where r.sector_id == id
select new Nurse { UserId = r.UserId, Name=u.FirstName+" " +u.LastName }).ToList();
return result.ToList();
}
它應該只填充我兩個表都需要的2個字段的數據,但會引發錯誤,因為The entity or complex type 'WatsonModel.Nurse' cannot be constructed in a LINQ to Entities query.
。
您不能投影到映射的實體(護士),但是可以投影到匿名類型或數據傳輸對象(DTO)來傳遞數據。
如果創建NurseDTO:
public class NurseDTO
{
public string UserId { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
}
然后致電GetCareNurses:
//Change 1: Change your List to List of type NurseDTO
public List<NurseDTO> GetCareNurses(int id)
{
var result = (from r in _context.Nurses
join u in _context.Users on r.UserId equals u.Id
where r.sector_id == id
//Change 2: Select new NurseDTO
select new NurseDTO { UserId = r.UserId, Name=u.FirstName+" " +u.LastName }).ToList();
return result.ToList();
}
您應該返回NurseDTO的列表
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.