2016-04-26 44 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#模型包含的信息較少。

特定數據類型,索引等 - 少得多的信息。

實體框架通過在方法中添加元數據(例如,您可以定義一個字符串以使其具有最大長度)來實現這一點。

如果你想這樣 - 你要麼過於簡單化,要麼需要一種方法來管理這些額外的數據以生成sql。

+0

非常有意義,謝謝你。 – Meta

+1

我的提示:轉過身去。從數據模型生成類。實體框架數據庫首先更好地處理LOT。你在EF方面沒有任何東西 - 並且可以使用所有的SQL功能。 – TomTom

0

你想達到什麼目的?您標記實體框架 - 核心所以在EF核心1.0 RC1您可以根據使用命令你的模型類生成SQL腳本:

dnx ef migrations script