考虑以下查询:
var query = from item in context.Users // Users if of type TblUser
select new User() // User is the domain class model
{
ID = item.Username,
Username = item.Username
};
如何在其他查询中重新使用语句的选择部分?即
var query = from item in context.Jobs // Jobs if of type TblJob
select new Job() // Job is the domain class model
{
ID = item.JobId,
User = ReuseAboveSelectStatement(item.User);
};
我尝试仅使用映射器方法:
public User MapUser(TblUser item)
{
return item == null ? null : new User()
{
ID = item.UserId,
Username = item.Username
};
}
随着:
var query = from item in context.Users // Users if of type TblUser
select MapUser(item);
但是如果我这样做,那么框架会抛出一个错误,如下所示:
LINQ to Entities不识别'MapUser(TblUser)'方法,该方法无法转换为存储表达式。
User = new User() { UserId = item.User.UserId, UserName = item.User.Username, NField = item.User.etc }
。 - djdd87