2017-09-09 50 views
0

我正嘗試在使用C#和實體框架遷移的SQL Server數據庫中創建計算字符串列。這裏是我的代碼模型類:在C#實體框架遷移中創建計算字符串列

[DatabaseGenerated(DatabaseGeneratedOption.Computed)] 
public string FullName 
{ 
    get { return FirstName + " " + Surname; } 
    private set { } 
} 

我得到回數據庫是一個名爲FullName字段中,鍵入nvarchar(Max),沒有計算列規範,它允許空值

+0

我不相信EF遷移會查看您的C#代碼並將其轉換爲SQL表達式。我相信您必須手動調整生成遷移以使此SQL Server列成爲** computed **列 –

回答

1

首先,更換物業定義這樣的:

[DatabaseGenerated(DatabaseGeneratedOption.Computed)] 
public string FullName { get; set; } 

然後創建遷移和手動添加到Up()方法的主體這樣的:

Sql("ALTER TABLE [TableName] ADD [FullName] AS ([FirstName] + ' ' + [SurName])");