mni*_*eto 8 c# linq entity-framework
我有一个存储数据库元数据的构造
public class Database {
public string ConnectionString { get; set; }
public virtual ICollection<Table> Tables { get; set; }
}
public class Table {
public string TableName { get; set; }
public virtual ICollection<ForeingKey> ForeingKeys { get; set; }
public virtual ICollection<Field> Fields { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我想用LINQ检索一个唯一查询中的所有数据库相关数据我可以从数据库查询表和一个子实体
var qry = from d in context.Databases
.Include(x => x.Tables.Select( c => c.Fields))
select d;
Run Code Online (Sandbox Code Playgroud)
但是,如何从Tables集合中读取两个孩子?像这样的东西
var qry = from d in context.Databases
.Include(x => x.Tables.Include(t => t.Fields).Include(t => t.ForeingKeys))
select d;
Run Code Online (Sandbox Code Playgroud)
mni*_*eto 13
另一种实现相同的方法是
var qry = from d in context.Databases
.Include(x => x.Tables)
.Include(x => x.Tables.Select(c => c.Fields))
.Include(x => x.Tables.Select(f => f.ForeingKeys))
select d;
Run Code Online (Sandbox Code Playgroud)
我更喜欢不使用文字.
var qry = from d in context.Databases
.Include("Tables.Fields")
.Include("Tables.ForeingKeys")
select d;
Run Code Online (Sandbox Code Playgroud)
EF将自动为您包含表格,然后在查询中包含这些导航属性.
| 归档时间: |
|
| 查看次数: |
10569 次 |
| 最近记录: |