2017-09-09 1 views
0

Je tente de créer une colonne de chaîne calculée dans une base de données SQL Server à l'aide des migrations C# et Entity Framework. Voici mon code de la classe modèle:Création d'une colonne de chaîne calculée dans les migrations C# Entity Framework

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

Tout ce que je reviens dans la base de données est un champ appelé FullName, le type nvarchar(Max), sans spécification de colonne calculée, il permet nulls

+0

Je ne crois pas que les migrations EF vont regarder votre code C# et traduire cela en une expression SQL. Je crois que vous devez adapter manuellement la migration de génération pour que cette colonne SQL Server soit une colonne ** calculée ** –

Répondre

1

En premier lieu, remplacer la propriété définition comme ceci:

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

Ensuite, créez une migration et ajouter manuellement dans le corps de la méthode Up():

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