c# - 包含在 EF C# 中
问题描述
我有三张表:会员、公司和公司地址
我可以使用 Include 获取与成员的业务,但我正在尝试获取 businessAddress,我猜它要求直接关系。这是我的模型:
[Table("member")]
public partial class Member
{
public Member()
{
Business = new HashSet<Business>();
// BusinessAddress = new HashSet<BusinessAddress>();
}
[Key]
public int memberId { get; set; }
public int chapterid { get; set; }
public string title { get; set; }
public string firstname { get; set; }
public string lastname { get; set; }
public bool IsActive { get; set; }
public string classification { get; set; }
public int SortOrder { get; set; }
public virtual ICollection<Business> Business { get; set; }
// public virtual ICollection<BusinessAddress> BusinessAddress { get; set; }
}
商业
[Table("Business")]
public partial class Business
{
public Business()
{
BusinessAddress = new HashSet<BusinessAddress>();
}
[Key]
public int BusinessID { get; set; }
public int? categoryid { get; set; }
public int? subcategoryid { get; set; }
public int memberid { get; set; }
public string businessname { get; set; }
public string dealingin { get; set; }
public int? sortOrder { get; set; }
[ForeignKey("memberid")]
public Member Member { get; set; }
public ICollection<BusinessAddress> BusinessAddress { get; set; }
}
营业地址
[Table("BusinessAddress")]
public partial class BusinessAddress
{
[Key]
public int businessaddressid { get; set; }
public int businessid { get; set; }
[ForeignKey("businessid")]
public virtual Business Business { get; set; }
public string address { get; set; }
}
以下是我的 EF 查询:
var list = _dbContext.Member.Include("Business").OrderByDescending(x => x.SortOrder).ThenBy(x => x.firstname).ToList();
我想获得具有业务和业务地址的成员。我试过 Include("BusinesADdress") 没用,请帮帮我。
解决方案
尝试使用Include
接受 lambda 选择器,后跟ThenInclude
:
var list = _dbContext.Member
.Include(m => m.Business)
.ThenInclude(b => b.BusinessAddress)
.OrderByDescending(x => x.SortOrder)
.ThenBy(x => x.firstname)
.ToList();
您也可以通过.
在Include
调用中附加所有需要的关系,但总的来说我建议不要这样做,因为第一种方法是类型安全的:
var list = _dbContext.Member
.Include("Business.BusinessAddress")
.OrderByDescending(x => x.SortOrder)
.ThenBy(x => x.firstname)
.ToList();
推荐阅读
- javascript - 将值从子组件更新到垫卡中的父组件
- java - java映射对象的值
- jquery - 初始化服务器端处理数据表后如何调整列?
- c++ - 在 pthread_create 代码中出现此错误?
- java - Hadoop 中的自定义可写与级联字符串性能
- java - 具有自动完成和模糊功能的休眠搜索
- java - 如何通过最大化窗口来调整 JavaFx fxml 组件的大小?
- google-data-studio - 有没有办法将报告模板添加到 Google Data Studio 本地社区连接器?
- tsql - 即使没有数据也显示一年中的每个星期
- spring-webflux - 在 Spring Webflux 弹性线程中获取请求对象