EFCore 多对多、一对多、一对一

多对多、一对多、一对一:

Permission 实体 : Role实体 成 n:m的对应关系

public class Permission

{

public byte[] RowVer { get; set; }  //数据版本用于生成乐观锁

public long Id { get; set; }

public long GroupId { get; set; }

public virtual List RoleItems { get; set; }

}

public class Role

{

public byte[] RowVer { get; set; }

public long Id { get; set; }

public string Code { get; set; }

public string Name { get; set; }

public virtual List PermissionItems { get; set; }

}

一、在实体类中创建一个 A,B的关联表

PermissionRoleItem

在这个实体中关联A,B两个实体

public class PermissionRoleItem

{

public byte[] RowVer { get; set; }

public long Id { get; set; }

public long PermissionId { get; set; }

public long RoleId { get; set; }

public virtual Permission Permission { get; set; }

public virtual Role Role { get; set; }

}

二、在A&B实体标记和 PermissionRoleItem 1 对多的关系

public virtual List RoleItems { get; set; }

三、一对一关系

Class C

{

public byte[] RowVer { get; set; }

public long Id { get; set; }

public long DId { get; set; }

public virtual D D { get; set; }

}

Class D

{

public byte[] RowVer { get; set; }

public long Id { get; set; }

public long CId { get; set; }

public virtual C C { get; set; }

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在使用EF Core进行多表联查时,可以使用LINQ提供的多种方法来实现排序操作。根据你提供的引用内容,可以使用`orderby`关键字来对查询结果进行排序。在LINQ查询中,可以使用`orderby`关键字后跟着要排序的字段,使用`ascending`或`descending`关键字来指定升序或降序排序。 例如,如果你想对查询结果按照`CREATETIME`字段进行降序排序,可以使用以下代码: ``` var query = (from exam in context.ExamineUser orderby exam.CREATETIME descending select new ExamineUserEntity { }).Skip(pageindex * pagesize) .Take(pagesize) .ToList(); ``` 在这个例子中,我们使用了`orderby`关键字后跟着要排序的字段`exam.CREATETIME`,并使用`descending`关键字表示按照降序排列。最后使用了`Skip`和`Take`方法实现了分页功能。 需要注意的是,以上代码中的`context.ExamineUser`是一个示例,你需要根据自己的数据库结构和实体类来替换成相应的查询语句。 希望这个回答对你有帮助。如果你有更多的问题,请随时提问。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [EF框架下 Linq语句多表联查排序实例](https://blog.csdn.net/weixin_30813225/article/details/98783719)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [EFCore 关联表查询_多表使用整理](https://blog.csdn.net/u011127019/article/details/123595207)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值