2017-10-20 15 views
0

私はEF Code Firstを1ヶ月間使用しています。私のプロジェクトは多くのテーブル(100個以上のデータテーブル)で動作する必要があり、将来何度も変更されます。移行を追加する時間を制御したり、時間をかけたりするのは難しいです。テーブル名をEFエンティティにマップする方法は?

マイグレーションの追加手順をスキップするソリューションはありますか?データベースにテーブルを作成し、エンティティへのマッピングを作成するだけですか?

例:データベースで

私はこのようなテーブルがあります:私は、次のエンティティにマッピングしたい

CREATE TABLE dbo.MyTable 
(
    Id INT, 
    Name VARCHAR(255), 
    Description VARCHAR(1000) 
); 

を:

public class MyEntity 
{ 
    public Id int {get; set;} 
    public Name string {get; set;} 
    public Description string {get; set;} 
} 

私の予想ソリューションは、このようなものです:

CreateMap("dbo.MyTable", MyEntity) 
+1

エンティティで[Table( "MyTable")]属性を使用できますか? – MstfAsan

+0

https://stackoverflow.com/help/how-to-ask – Kixoka

答えて

2

あなたが実際にマイグレーションを実行しない場合、私はそれらを作成示唆System.ComponentModel.DataAnnotations.Schema.Table

[Table("MyTable")] 
public class MyEntity 
{ 
    public Id int {get; set;} 
    public Name string {get; set;} 
    public Description string {get; set;} 
} 

属性を使用しますとにかくそれを実行する前に関連するコードをコメントアウトしてください。あなたが実際にそれらを動かすことを望んでいるときに、あなたがその機会にうまくセットアップされるようにその方法。

1
modelBuilder.Entity<Order>(m => { 
    m.ToTable("MyTable", "dbo"); 
}) 

情報::https://docs.microsoft.com/en-us/ef/core/modeling/relational/tables

EDIT:

は、その後、あなたがに似たいくつかのマップを追加することができます:あなたは、あなたのDbContextに呼び出されるメソッドOnModelCreatingをオーバーライドすることにより、エンティティー・マップを定義することができ私にはありません私は1つの場所に集中させることを好むので、注釈を自分のエンティティに直接追加するようなものです。管理が簡単です。すべての後、私はそれは好みの問題だと思います:)

関連する問題