2016-04-26 13 views
0

エンティティフレームワークで特定のモデルクラスのテーブル作成SQLを生成する方法はありますか?テーブル作成SQLクエリをモデルクラスから生成する

例、私はこれを有する:

public class Event 
{ 
    public int Id { get; set; } 
    public DateTime Date { get; set; } 
    public string Context { get; set; } 
    public string EventMessage { get; set; } 
    public string ModifiedBy { get; set; } 
} 

}

および期待は、SQLである:

CREATE TABLE [dbo].[Event] (
[Id]   INT   IDENTITY (1, 1) NOT NULL, 
[Context]  NVARCHAR (MAX) NULL, 
[Date]   DATETIME2 (7) NOT NULL, 
[EventMessage] NVARCHAR (MAX) NULL, 
[ModifiedBy] NVARCHAR (MAX) NULL, 
CONSTRAINT [PK_Event] PRIMARY KEY CLUSTERED ([Id] ASC) 

)。

答えて

4

C#のモデルはWAY少ない情報を含んでいることである理由。

特定のデータ型、インデックスなど - 多くの情報がありません。

エンティティ・フレームワークは、メソッドにメタデータを追加することによってこれを行います(たとえば、最大長を持つように文字列を定義できます)。

このようにしたい場合は、非常に単純化するか、この追加データをSQL生成用に管理する必要があります。

+0

は完璧な理にかなって、ありがとうございます。 – Meta

+1

私のヒント:他の方法で行ってください。データモデルからクラスを生成します。 Entity Framework Database Firstは多くの点で優れています。あなたはEF側では何も失わず、すべてのSQL機能を使用できます。 – TomTom

0

達成しようとしていることは何ですか? EFコア1.0 RC1には、コマンドを使用して、モデルクラスに基づいてSQLスクリプトを生成できるようにするには、エンティティフレームワークコアでタグ付け:

dnx ef migrations script 
関連する問題