2017-10-18 4 views
0

J'ai une table qui a la clé primaire en utilisant deux colonnes (REQID et REQ_SUBID) et j'ai un déclencheur qui génère ces valeurs, mais seulement si elles ne sont pas définies. Dans la représentation EF, j'utilise l'attribut DatabaseGeneratedC# Entity Framework - insérer une valeur dans la colonne DatabaseGenerated

[Key] 
[DatabaseGenerated(DatabaseGeneratedOption.Identity)] 
[Column("REQID", Order = 0)] 
public string RequestId { get; set; } 

[Key] 
[DatabaseGenerated(DatabaseGeneratedOption.Identity)] 
[Column("REQ_SUBID", Order = 1)] 
public int RequestSubId { get; set; } 

mais parfois je veux mettre REQID valeur dans le code et l'enregistrer dans la base de données, mais si je tente de le faire, je reçois cette exception:

Une propriété dépendante dans un ReferentialConstraint est mappée à une colonne générée par le stockage. Colonne: 'REQID'.

Est-il possible de résoudre ce problème?

Répondre

0

Vous ne pouvez pas utiliser [DatabaseGenerated (DatabaseGeneratedOption.Identity)] sur une propriété de chaîne, si vous avez besoin pour générer automatiquement id UNIC vous pouvez placer dans dans le constructeur

public class myEntity{ 
    MyEntity(){ 
    RequestId = Guid.NewGuid().ToString(); 
} 
}