最初にコードを使用して、2つのエンティティを同じテーブルにマップする方法に興味があります。次に例を示します。
public class User
{
[Key]
public int UserId { get; set; }
public string Name { get; set; }
public byte Age { get; set; }
public bool Active { get; set; }
public DateTime Created { get; set; }
}
public class UserViewModel
{
[Key]
public int UserId { get; set; }
public string Name { get; set; }
public byte Age { get; set; }
}
基本的に、私はリポジトリの構築にうんざりしています。modelbuilderの構成ポータル、ユーザーポータル、その他のサービスのすべての可能なモデルをマップし、すべてにDbContextを使用したいと思います。Userクラスを階層の最上位に設定し、データベースを構築するクラスを設定したいのですが、他のすべてのモデルはさまざまなアプリケーション用に存在する必要があります。
オートマッパーは使いたくない。また、かなりの量の手動コーディングを行ったため、時間が無駄になりました。変更を加えるたびに、リポジトリに戻って再コーディングする必要があります。これは煩わしいことです。
これをmodelbuilderで使用しようとしましたが、階層が無効であるという警告が表示されます。
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<User>().Map(p => { p.ToTable("Users"); });
modelBuilder.Entity<UserViewModel>().Map(p => { p.ToTable("Users"); });
}
また、私は「テーブル分割」を実現しようとしているのではないことにも注意してください。テーブルを2つのエンティティに分割したくないので、主キーを持つ列を除いてすべての列をnull許容にし、さまざまなアプリケーション/Webサービス/Webポータルが許可された量のデータを入力できるようにします。のアクセス。
すべてのヒントをありがとう:)