2017-09-09 3 views
0

Ich versuche, eine berechnete Zeichenfolge-Spalte in einer SQL Server-Datenbank mithilfe von C# - und Entity Framework-Migrationen zu erstellen. Hier ist mein Code aus dem Modellklasse:Erstellen einer berechneten Zeichenfolge in C# Entity Framework-Migrationen

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

Alles, was ich zurück in der Datenbank erhalten ein Feld FullName, Typ nvarchar(Max), ohne berechnete Spalte Spezifikation genannt wird, ermöglicht es nulls

+0

Ich glaube nicht, dass die EF-Migrationen Ihren C# -Code betrachten und in einen SQL-Ausdruck übersetzen. Ich glaube, dass Sie die generierte Migration manuell anpassen müssen, um diese SQL Server-Spalte zu einer ** berechneten ** Spalte zu machen –

Antwort

1

Zuerst ersetzen die Eigenschaft Definition wie folgt:

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

Dann eine Migration erstellen und diese manuell in den Körper der Up() Methode hinzufügen:

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