sql >> データベース >  >> RDS >> Sqlserver

Entity Framework Core 2.0:抽象基本クラスを1回構成する方法

    私が正しく理解していれば、Status 単なる基本クラスであり、基本エンティティではありません データベースの継承に参加しています。

    このような場合、Statusを絶対に参照しないことが重要です。 エンティティモデルと構成内のクラス、つまりDbSet<Status>はありません 、タイプStatusのナビゲーションプロパティはありません またはICollection<Status>modelBuilder.Entity<Status>()はありません 呼び出しがあり、IEntityTypeConfiguration<Status>はありません 。

    代わりに、常にStatusから継承する具象型を参照する必要があります 。構成コードを再利用するには、制約付きジェネリックを使用する必要があります メソッドまたはクラスを渡し、具体的なエンティティタイプを渡します。

    IEntityTypeConfigurationを使用しているため クラス、おそらく最も自然なのは、StatusConfigurationを作成することです ジェネリッククラス:

    public class StatusConfiguration<TEntity> : IEntityTypeConfiguration<TEntity>
        where TEntity : Status
    {
        public virtual void Configure(EntityTypeBuilder<TEntity> builder)
        {
            builder.Property(c => c.updateUserName).IsRequired().HasMaxLength(50);
        }
    }
    

    派生エンティティ構成クラスを派生させます:

    public class ItemConfiguration : StatusConfiguration<Item>
    {
        public override void Configure(EntityTypeBuilder<Item> builder)
        {
            base.Configure(builder); // <--
            builder.ToTable("Item", "dbo").HasKey(c => c.Id);
            builder.Property(c => c.Description).IsRequired().HasMaxLength(100);
        }
    }
    



    1. PL / SQLで変数のタイプを表示するにはどうすればよいですか?

    2. OracleのTO_CHAR(number)関数

    3. OracleCloudInfrastructureのコンパートメントについて知っておくべき7つのこと

    4. R12.2のログインフローと基本的なトラブルシューティング