2016-07-26 18 views
-1

私は質問があります。私は本当にそれが可能かどうかはわかりません。私はモデルのMVCアプリケーションおよび一部に取り組んでいます。このようになります。同じクラスに2つのキーを持つことは可能ですか?

public class EmployeeNewspaper 
{ 
    public string Name { get; set; } 
    [Key] 
    public string Appendage { get; set; } 
    public string SourceInformationName { get; set; } 
} 

だから私の質問です:それは同じクラスに2つのキーを持つことは可能ですか?または私は何ができますか?私は名前と付属器を一意にする必要があります。出来ますか?

+4

それは問題が何であるかを完全には明らかではありません - これはエンティティフレームワークモデルか標準のMVCモデルですか?標準のMVCモデルの場合は、独自のコードをコードまたはユーザーインターフェイスに適用したいのですか? (例えば、重複が追加された場合、ランタイムエラーや検証エラーが発生するようにしたいのですか?) - 一意性を強制する場所を明確にすることができれば、アプローチが異なります(DBキー、ハッシュ/等価比較子、検証規則など) – Charleh

+0

そのエンティティフレームワークモデル。ユーザーに固有の情報を表示したい – SomeAnonymousPerson

+0

DBにストアドプロシージャを実行すると、正しい情報が得られます。しかし、私がモデルに情報を渡すとき、私はAppendageのキーしか持っていないので、それは異なった名前を持っています、どんな場合でも私は同じ名前を表示します。だから私はどんな場合でも、私たちの名前と附属鍵を一緒に(一緒に)作る必要があります。私は自分自身を説明しましたか? – SomeAnonymousPerson

答えて

1

おかげ @Charle私は実際に複合キーを探していた答えがある:

public class EmployeeNewspaper 
{ 
    [Key][Column(Order = 0)] 
    public string Name { get; set; } 
    [Key][Column(Order = 1)] 
    public string Appendage { get; set; } 
    public string SourceInformationName { get; set; } 
} 
0

あなたはGuidを使用してG lobally U nique ID entifierを得ることができます。

しかし、あなたは、この使用していることを認識する必要があります:

Guid MyID = new Guid(); 

は(空の)IDすべてゼロになります。

だから、あなたはそれをこのように使用する必要があります:

Guid MyID = Guid.NewGuid(); 
+2

これはどのように質問に答えますか? – Maarten

+0

GUIDにどのように名前と付属物を割り当てることができますか?、ありがとう! – SomeAnonymousPerson

+2

これは、インスタンスの一意のIDを(参照自体は別として)提供しますが、どのフィールドにも一意性を強制しません。 – Charleh

関連する問題