EF6 System.Data.Entity.Core.EntityKey 在 Entity Framework Core 中的等价物是啥?
Posted
技术标签:
【中文标题】EF6 System.Data.Entity.Core.EntityKey 在 Entity Framework Core 中的等价物是啥?【英文标题】:What is the equivalent for EF6 System.Data.Entity.Core.EntityKey in Entity Framework Core?EF6 System.Data.Entity.Core.EntityKey 在 Entity Framework Core 中的等价物是什么? 【发布时间】:2021-11-14 21:52:15 【问题描述】:我在使用 EF 6 的 .net 框架中有以下代码。
PropertyInfo[] propInfo = myObject.GetType().GetProperties(); //myObject is of type T
foreach (PropertyInfo col in propInfo)
if (col.PropertyType != typeof(System.Data.Entity.Core.EntityKey))
//do something
现在我正在迁移到 .Net 5 和 EF Core,如何获得 typeof(EntityKey)
的等效项?
【问题讨论】:
【参考方案1】:您可以使用以下 API 实现此目的:
var et = ctx.Model.FindEntityType(typeof(T));
var properties = et.GetProperties();
foreach (var property in properties)
if (!property.IsKey())
// do something
【讨论】:
好的,但是我无法访问此类中的 dbcontext。还有其他方法吗? 如果无法访问 IModel,我认为不可能 我可以使用Microsoft.EntityFrameworkCore.Metadata.IModel,但是没有DbContext的实例,有什么用吗? @Svyatoslav-danyliv 实际上您只需要来自DbContext
的IModel
实例。它是映射的元数据。以上是关于EF6 System.Data.Entity.Core.EntityKey 在 Entity Framework Core 中的等价物是啥?的主要内容,如果未能解决你的问题,请参考以下文章