Rag*_*h S 11 c# linq nopcommerce entity-framework-4 asp.net-mvc-3
我尝试在nopCommerce 3.0中创建一个linq连接查询.我加入linq的两张桌子并写下来
代码成功了.但视觉工作室的知识分子显示出错误
具有语句主体的lambda表达式无法转换为表达式树
请看下面的代码
var roles = _customerEventRoleRepository.Table.Where(c => c.EventId == selevent)
.Join
(
_customerRepository.Table,
cev => cev.CustomerId, c => c.Id,
(cev, c) =>
{
var cust = new CustomerEventRolesModel();
cust.Id = cev.Id;
cust.CustomerId = c.Id;
cust.Customer = c.Email;
cust.ContactName = c.GetAttribute<string>(SystemCustomerAttributeNames.FirstName);
cust.CompanyName = c.GetAttribute<string>(SystemCustomerAttributeNames.Company);
cust.Speaker = cev.IsSpeaker;
cust.Sponsor = cev.IsSponser;
return cust;
}
).OrderBy(cev => cev.Customer).ToList();
Run Code Online (Sandbox Code Playgroud)
但错误显示
请帮忙
jas*_*son -1
错误消息正是它所说的。你有一个 lambda 表达式。它有一个声明体。带有语句体的 lambda 表达式无法转换为表达式树。但Join
需要一个表达式树才能与 EF 一起使用。您应该尝试用没有主体的 lambda 表达式替换您所拥有的内容,例如:
(cev, c) => new CustomerEventRolesModel {
Id = cev.Id,
CustomerId = c.Id
}
Run Code Online (Sandbox Code Playgroud)
等等。
顺便一提,
ContactName = c.GetAttribute<string>(SystemCustomerAttributeNames.FirstName)
Run Code Online (Sandbox Code Playgroud)
不适用于 EF。时期。你最好想出别的办法。
归档时间: |
|
查看次数: |
21558 次 |
最近记录: |