为了账号安全,请及时绑定邮箱和手机立即绑定

EntityFramework 如何获取实体的 Key

EntityFramework 如何获取实体的 Key

慕婉清6462132 2018-08-10 09:06:33
EF 可以通过 db.Set<Order>().Find(12) 获取实体,但如何反过来通过实体获取 Key 呢?因为做了一个通用的功能,传来的实体是 object 类型,可能是 Order 也可能是 Product 还可能是其它的。
查看完整描述

2 回答

?
隔江千里

TA贡献1906条经验 获得超10个赞

试试下面扩展方法:

1 public static class DbContextExtensions {
2     public  static EntityKey GetEntityKey(this DbContext context, object entity) {
3         var adapter = context as IObjectContextAdapter;
4         var entry = adapter.ObjectContext.ObjectStateManager.GetObjectStateEntry(entity);
5         return entry.EntityKey;
6     }
7 }

没严格测试,自己再调整下好了。


查看完整回答
反对 回复 2018-08-13
?
犯罪嫌疑人X

TA贡献2080条经验 获得超4个赞

强制转换为Order类型或Product类型后再获到

查看完整回答
反对 回复 2018-08-13
  • 2 回答
  • 0 关注
  • 791 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信