【问题标题】: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) 的等效项?

【问题讨论】:

    标签: c# entity-framework-core entity-framework-6 .net-5


    【解决方案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
    • 实际上您只需要来自DbContextIModel 实例。它是映射的元数据。
    猜你喜欢
    • 2019-10-10
    • 2020-05-04
    • 2019-07-28
    • 2017-07-24
    • 2018-08-30
    • 2011-01-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多