entity-framework - 使用实体框架获取子对象时父对象为空
问题描述
public class AcsBatchingDbContext : DbContext
{
public DbSet<CardHolder> CardHolders { get; set; }
public DbSet<AccessCard> AccessCards { get; set; }
}
public class CardHolder
{
public int CardHolderId { get; set; }
public ICollection<AccessCard> AccessCards { get; set; };
}
public class AccessCard
{
public int AccessCardId { get; set; }
public CardHolder CardHolder { get; set; }
}
当我尝试获取 AccessCards
using (var db = new AcsBatchingDbContext())
{
var cards = db.AccessCards.ToList();
}
其中 card.CardHolder = null
为什么?为什么EF不抢持卡人?
另一个问题:
为什么这个表达式不编译?
db.AccessCards.Include(x => x.CardHolder).ToList();
为什么唯一的选择是使用
db.AccessCards.Include("CardHolder").ToList();
解决方案
您应该使用 include 来加载CardHolder
实体。
(这需要using System.Data.Entity;
)
db.AccessCards.Include(x => x.CardHolder).ToList();
或者,您可以Include
像这样申请;
db.AccessCards.Include("CardHolder").ToList();
推荐阅读
- mysql - How can I add a mysql Query to a node.js controller
- python - Add array of new columns to Pandas dataframe
- apache-spark - why isnull() and .isNull in Pyspark 1.6 producing different results?
- angular - Angular Components inside ngfor card list
- nattable - NatTable allow cell editing only when cell is selected
- databricks - 从 Databricks 加载雪花会更改表结构
- ruby-on-rails - 遍历 ruby 中的数组
- google-apps-script - 输入代码时,有没有办法在单元格中返回值?
- c - 如何将 librdkafka 有效负载转换为 json 以获取参数值?
- reactjs - 如何将 jest.spyOn 与功能性反应组件一起使用