考慮以下查詢:你如何在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