Wik*_*tor 2 c# linq entity-framework
我想使用单个LINQ查询来使用EntityFramework填充数据库实体中的嵌套列表.
我有3个表实体.第一类Cities包含List<Houses>和Houses包含List<Residents>.
那些课程:
class Cities
{
long CityId {get;set;}
string Name {get;set;}
List<House> Houses {get;set;}
}
class Houses
{
long CityId {get;set;}
string Address {get;set;}
List<Resident> Residents {get;set;}
}
class Residents
{
long HouseId {get;set;}
string FirstName {get;set;}
string LastName {get;set;}
}
Run Code Online (Sandbox Code Playgroud)
我想要实现的是这样的:
var cities = ( from city in db.Cities
select new // Creating anonymous type to fill List of Houses
{
CityId = city.CityId,
Name = city.Name,
Houses = db.Houses.Where(h=>h.CityId == city.CityId)
.Select( new // Another anonymous type, but this time this isn't working
{
HouseId = h.HouseId,
Address = h.Address,
Residents = db.Residents.Where(r=>r.HouseId == h.HouseId).ToList()
}).ToList()
.Select( h => new Houses
{
HouseId = h.HouseId,
Address = h.Address,
Residents = h.Houses
}).ToList()
})
.ToList()
.Select( c=> new Cities
{
CityId = c.CityId
Name = c.Name,
Houses = c.Houses
}).ToList()
Run Code Online (Sandbox Code Playgroud)
不幸的是我收到了错误The entity or complex type Houses cannot be constructed in a LINQ to Entities.
它的工作原理,仅供参考Houses = db.Houses.Where(h=>h.CityId ==city.CityId).ToList().但与我失去Residents在Houses.
甚至可以使用一个LINQ查询吗?
您只需要将房屋和居民纳入您的城市查询:
var cities = db.Cities.Include(c => c.Houses.Select(h => h.Residents)).ToList();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
394 次 |
| 最近记录: |