Entity Framework 不获取有关系的行
Entity Framework does not fetch the rows that have a relationship
我在 SQL 服务器中有这 2 个 table:
Table #1 Order
:
OrderID
Name
IsFetched
Table #2 OrderRows
:
OrderRowId
OrderID
Name
Adress
这些 table 在 OrderID
列上有关系:一个订单可以有多个 OrderRows
连接到 Order
table OrderID
键。
但是,当我使用Entity Framework 6 查询数据库时,我没有得到属于Order
的OrderRows
,它们总是空的,这是为什么? OrderRows
不是应该自动填充吗?
using (var db = new MyDbEntities())
{
db.Configuration.LazyLoadingEnabled = false;
try
{
var list = db.Order.Where(x => x.IsFetched == null || x.IsFetched == false).ToList();
return list;
}
catch (Exception ex)
{
return null;
}
}
您必须通过添加 .Include(x => x.OrderRows)
来包含相关实体
using (var db = new MyDbEntities())
{
db.Configuration.LazyLoadingEnabled = false;
try
{
var list =
db.Order
.Include(x => x.OrderRows)
.Where(x => x.IsFetched == null || x.IsFetched == false)
.ToList();
return list;
}
catch (Exception ex)
{
return null;
}
}
我在 SQL 服务器中有这 2 个 table:
Table #1 Order
:
OrderID
Name
IsFetched
Table #2 OrderRows
:
OrderRowId
OrderID
Name
Adress
这些 table 在 OrderID
列上有关系:一个订单可以有多个 OrderRows
连接到 Order
table OrderID
键。
但是,当我使用Entity Framework 6 查询数据库时,我没有得到属于Order
的OrderRows
,它们总是空的,这是为什么? OrderRows
不是应该自动填充吗?
using (var db = new MyDbEntities())
{
db.Configuration.LazyLoadingEnabled = false;
try
{
var list = db.Order.Where(x => x.IsFetched == null || x.IsFetched == false).ToList();
return list;
}
catch (Exception ex)
{
return null;
}
}
您必须通过添加 .Include(x => x.OrderRows)
using (var db = new MyDbEntities())
{
db.Configuration.LazyLoadingEnabled = false;
try
{
var list =
db.Order
.Include(x => x.OrderRows)
.Where(x => x.IsFetched == null || x.IsFetched == false)
.ToList();
return list;
}
catch (Exception ex)
{
return null;
}
}