Dưới đây là câu hỏi của tôi:Lỗi với Entity Framework Bất cứ() lọc
var x = db
.Users
.Where(u => u.Locations.Any(l => searchedLocation.Counties.Any(c => c.LocationId == l.LocationId));
Bối cảnh:
Users
làIQueryable<User>
. (Bộ đối tượng EF)searchedLocation
là đối tượngLocation
.Counties
làICollection<MiniLocation>
.
gì tôi đang cố gắng để làm:
Return tất cả người dùng, nơi mà bất kỳ Counties cho những địa điểm có một locationId của bất kỳ của các quận thuộc vị trí tìm kiếm.
Ví dụ:
Tìm kiếm thành phố New York (LocationId = 1. County1LocationId = 2)
User: Bob. Địa điểm: Soho. County1LocationId = 2. County2 LocationId = 3.
Vì vậy, đó là một kết quả phù hợp. (Vì Soho có County với một LocationId 2, và do đó, NYC)
Lỗi i nhận:
Không thể để tạo ra một giá trị không đổi của loại 'xxx.xxx.Locations.MiniLocation' . Chỉ các kiểu nguyên thủy ('như Int32, String và Guid') mới được hỗ trợ trong ngữ cảnh này.
Bất kỳ ý tưởng nào?
Bạn có thử với .Join()? –