【发布时间】:2018-10-18 01:54:45
【问题描述】:
我想查询数据库并获取一个包含所有内部列表的运动对象,但由于某种原因我丢失了,选择仅在列表中深入 2 级,任何更深,并且列表属性的值为 @987654322 @, 结构示例
public class Sports
{
public int id { get; set; }
public string name { get; set; }
public List<League> leagues { get; set; }
}
public class League
{
public int id { get; set; }
public string name { get; set; }
public string description { get; set; }
public List<Team> teams { get; set; }
}
public class Team
{
public int id { get; set; }
public string name { get; set; }
public string successrate { get; set; }
public List<Player> players { get; set; }
}
public class Player
{
public int id { get; set; }
public string name { get; set; }
public int age { get; set; }
}
我在 MyAppContext 文件中创建了这个属性
public DbSet<Sports> sports { get; set; }
现在,当我使用 select 或 linq 或我尝试过的任何其他方式调用项目时,运动对象始终是 2 维的,这意味着它不会比嵌套列表中的两个级别更深!使用var sport=db.Sports.First() 的结果示例结果是{"id":1,"name":"Football","leagues":null} 或者如果我使用了 select()
var sportQuery = db.sports.Select(
s=>new Sports(){
id=s.id,
leagues=s.leagues,
name=s.name
}).First();
我仍然没有得到完整的信息{"id":1,"name":"Football","leagues":[{"id":1,"name":"fc","description":"Some Leauge","teams":null},{"id":2,"name":"al","description":"League","teams":null}]}
这是为什么!以及如何获得这样的完整对象
{"id":1,"name":"Football","leagues":[{"id":1,"name":"fc","description":"Some Leauge","teams":[{"id":1,"name":"real madrid","successrate":null,"players":[{"id":1,"name":"Cristiano Ronaldo","age":21},{"id":2,"name":"Iniesta","age":38}]},{"id":2,"name":"Barcelona","successrate":null,"players":[{"id":1,"name":"Cristiano Ronaldo","age":21},{"id":2,"name":"Iniesta","age":38}]}]},{"id":2,"name":"al","description":"League","teams":[{"id":1,"name":"real madrid","successrate":null,"players":[{"id":1,"name":"Cristiano Ronaldo","age":21},{"id":2,"name":"Iniesta","age":38}]},{"id":2,"name":"Barcelona","successrate":null,"players":[{"id":1,"name":"Cristiano Ronaldo","age":21},{"id":2,"name":"Iniesta","age":38}]}]}]}
我已经被困了好几天了,如果有任何帮助,将不胜感激
【问题讨论】:
标签: c# entity-framework linq asp.net-core