1

Clientクラスを定義しました。FluentAPIを使用して列名を定義するMapping\ClientMap.csファイルもあります。ただし、ClientMap.csコードが実行されていないため、「呼び出す」方法がわかりません。

私もこれを持っています:

namespace CardNumbers.Data
{
    public class Repository : DbContext, IRepository
    {
        public DbSet<Client> Clients { get; set; }
        public DbSet<ClientOrder> ClientOrders { get; set; }
        public DbSet<Reorder> Reorders { get; set; }
        public DbSet<Operator> Operators { get; set; }

これはあまり良い習慣ではないことを私は知っていますが、それが私たちがインストラクターと一緒にアプリケーションを構築していた方法です。

だから、私の質問は-Fluent APIコードが実行時に呼び出されることを確認するために何を追加する必要がありますか?

前もって感謝します。

4

2 に答える 2

2

マッピングコードは、OnModelCreatingメソッド(オーバーライドできる仮想メソッドDbContext)に直接配置するか、メソッドから呼び出される別の構成クラスに配置する必要がありますOnModelCreating

protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
    modelBuilder.Entity<Client>().Property(p => p.Name).IsRequired();
}

また

protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
    modelBuilder.Configurations.Add(new ClientConfiguration());
}

他の場所:

public class ClientConfiguration : EntityTypeConfiguration<Client>
{
    public ClientConfiguration()
    {          
        this.Property(p => p.Name).IsRequired();
    }
}
于 2012-10-21T18:43:09.290 に答える
1

Repository流暢なマッピングは、このように""クラスの下部に追加する必要があります

protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        //add fluent api code
    }

私があなたのリポジトリを引用している理由は、あなたが実際にそこにリポジトリパターンを実装していないからです。これを特定のDbContextとして定義してから、複数のコンテキストを取得できるリポジトリを作成する必要があります。リポジトリの実装に関するこの非常によく書かれた投稿を参照してください:http ://www.asp.net/mvc/tutorials/getting-started-with-ef-using-mvc/implementing-the-repository-and-unit-of-work -patterns-in-an-asp-net-mvc-application

于 2012-10-21T18:43:22.730 に答える