2016-09-16 4 views
0

Ich muss einen komplexen Wert über Entity Framework-Code zuerst erstellen, der drei der folgenden drei Werte enthält.Erstellen Sie einen komplexen Primärschlüssel mit Entity Framework Code-zuerst

  • A eine Konstante Teil aussehen wie "s # 34"
  • ist float B ist und es Wert ist von einem API-Webservice
  • C kommen, ist natürliche Zahl!

Ich möchte C automatisch generieren. In einem Beispiel haben wir diese Ids:

+-----+------+--+ 
|A |B  |C | 
+-----+------+--+ 
|s#34 |67889 |1 | 
|s#34 |68988 |2 | 
|s#34 |87665 |3 | 
|s#34 |35458 |4 | 
|s#34 |..... |5 | 
... 

Ich bin für einen Code wie folgt aussehen:

[DatabaseGenerated(DatabaseGeneratedOption.Identity)] 
[ID = "string1" + "string2" + default.ToString()] 
public int ID { get; set; } 

mein Mittelwert von "default" im Code wieder auf den Wert, der von (DatabaseGeneratedOption bekommen .Identität).

Vielen Dank für Ihre Hilfe

+0

Haben Sie etwas dagegen, was haben Sie ausprobiert? Wo hast du gerade ein Problem? Der C-Wert, den Sie entweder über "identity" oder "sequence" erzeugen können, "A" können Sie in Ihrem Code fest codieren, während "B" nur eine normale Variable ist, die Sie von Ihrem Webservice abrufen. –

+0

meine Frage betrifft automatischen Generator! Ich möchte die letzte Entitäts-ID in db nicht überprüfen, um eine neue Zeile zu erstellen. Ich möchte die DataAnnotations-Fähigkeiten wie folgt verwenden: "[DatabaseGenerated (DatabaseGeneratedOption)] –

+0

Sie können dies mithilfe der benutzerdefinierten SQL Server-Identitätsspalte erreichen ... http://stackoverflow.com/questions/2177584/sqlserver-identity-column-with-text –

Antwort

0

Cramming alle drei Stücke von Informationen in ein Feld, das die einzige Verantwortung Prinzip verletzen würde. Sie sollten wahrscheinlich eine composite key erstellen und dann in einer computed column kombinieren, wenn Sie die drei Spalten für die Anzeige verketten müssen.

+0

Ich bin auf der Suche nach einem Code wie folgt: [DatabaseGenerated (DatabaseGeneratedOption.Identity)] [ID = "string1" + "string2" + default.ToString()] public int ID {get; einstellen; } mein Mittelwert von "Standard" in Code kommt zurück zu dem Wert, der von (DatabaseGeneratedOption.Identity) erhalten. –

Verwandte Themen