Tôi nhận được lỗi này cho truy vấn dưới đâyKhông thể để tạo ra một giá trị không đổi kiểu Chỉ loại nguyên thủy hoặc các loại liệt kê được hỗ trợ trong bối cảnh này
Không thể để tạo ra một giá trị không đổi kiểu
API.Models.PersonProtocol
. Chỉ loại hoặc các loại liệt kê nguyên thủy được hỗ trợ trong bối cảnh này
ppCombined
dưới đây là một đối tượng IEnumerable
của PersonProtocolType
, được xây dựng bởi concat của 2 PersonProtocol
danh sách.
Tại sao điều này không thành công? Chúng tôi không thể sử dụng mệnh đề LINQ JOIN
bên trong của SELECT
của một 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
})
});
liên quan: [ LINQ, Không thể tạo giá trị không đổi của loại XXX. Chỉ các kiểu nguyên thủy hoặc kiểu liệt kê mới được hỗ trợ trong ngữ cảnh này] (http://stackoverflow.com/q/13405568/456814). –
Liên quan: [Không thể tạo giá trị không đổi - chỉ các loại nguyên thủy] (http://stackoverflow.com/q/10862491/456814). –