【发布时间】:2013-09-26 14:12:51
【问题描述】:
以下查询出现此错误
无法创建
API.Models.PersonProtocol类型的常量值。此上下文仅支持原始类型或枚举类型
下面的ppCombined是PersonProtocolType的一个IEnumerable对象,由2个PersonProtocol列表的concat构成。
为什么会失败?我们不能在JOIN 的SELECT 内使用LINQ JOIN 子句吗?
var persons = db.Favorites
.Where(x => x.userId == userId)
.Join(db.Person, x => x.personId, y => y.personId, (x, y) =>
new PersonDTO
{
personId = y.personId,
addressId = y.addressId,
favoriteId = x.favoriteId,
personProtocol = (ICollection<PersonProtocol>) ppCombined
.Where(a => a.personId == x.personId)
.Select( b => new PersonProtocol()
{
personProtocolId = b.personProtocolId,
activateDt = b.activateDt,
personId = b.personId
})
});
【问题讨论】:
标签: c# linq entity-framework join