【问题标题】:check if property Id exists in fluent EF Core configuration检查流利的 EF Core 配置中是否存在属性 ID
【发布时间】:2023-04-09 09:27:01
【问题描述】:

在 EF Core 5 fluent 配置中,我将属性 ID 命名为 PropertyName+Id,对于所有表...除了没有名为“Id”的属性的表...如何检查如果一个类型没有这样的属性?

// make the Id column be "EntityName+Id"
foreach (var entity in modelBuilder.Model.GetEntityTypes())
{
    modelBuilder.Entity(entity.Name)
        .ToTable(entity.DisplayName())
        .Property("Id").HasColumnName(entity.GetTableName() + "Id"); // check first if 'Id' exists
} 

【问题讨论】:

  • 您是否在问如何为没有 Id 属性的类创建 {TableName}+Id 列?或者您是否尝试不为这些类配置 Id 列?
  • 嗨@Serge,你可以看到这个thread可能有帮助。

标签: c# .net entity-framework entity-framework-core ef-core-5.0


【解决方案1】:

这似乎行得通,不确定它是否是最佳方式

foreach (var entity in modelBuilder.Model.GetEntityTypes())
{
    var builderEntity = modelBuilder.Entity(entity.Name);
    
    // make table name as entity name
    builderEntity.ToTable(entity.DisplayName()); 

    // check if "Id" property exists                      <<<
    if (entity.FindProperty("Id") != null)
    {
        // make Id column name to be tableName+Id
        builderEntity.Property("Id")
            .HasColumnName(entity.GetTableName() + "Id");
    }
}

【讨论】:

    猜你喜欢
    • 2023-04-02
    • 1970-01-01
    • 2021-10-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-17
    • 1970-01-01
    • 2017-11-22
    相关资源
    最近更新 更多