考虑以下查询:你如何在Entity Framework中重用select语句?
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}'大约30次。 – GenericTypeTea 2010-08-03 07:52:08