9

まず、Entity Framework 4.1のコードを使用しています。Entity Framework 4.1を使用して一意の非プライマリキーフィールドをエンティティに追加する方法はありますか?

プライマリキーがUserIdに設定されているユーザーエンティティがあり、UserLoginが一意である必要があります。どのようにそれを行うことができますか?

+0

が重複する可能性を持つことができますhttp://stackoverflow.com/questions/ 5701608/ef-code-with-unique-key-first) –

答えて

15

Entity Frameworkのはユニーク制約をサポートしていません。 SQLクエリを使用してデータベースを作成し、データベースを初期化するときに一意の制約を生成できます。モデルのカスタムイニシャライザを作成し、SQLコマンドを実行して制約を生成します。

編集

今すぐ(以降EF 6.1)あなたが簡単(ユニーク制約、[最初のEFコード付きのユニークなキー]の

[Index("UserLoginIndex", IsUnique = True)] 
public string UserLogin { get; set; } 
+3

EF 6.1の時点で、[Index(IsUnique = true)]データ注釈が利用可能です – calebboyd

+0

それはまだリリースされていません。 –

+0

3/17/14に[nuget](http://www.nuget.org/packages/EntityFramework/)パッケージがリリースされました。 – calebboyd

2

独自の制約を確認してください、私はそれがあなたが探していると思いますか?

http://weblogs.asp.net/manavi/archive/2011/01/23/associations-in-ef-code-first-ctp5-part-3-one-to-one-foreign-key-associations.aspx

+0

これは、既存のAPIを指す答えです。 EF版はこれをまだサポートしていません。 –

+0

CTP5でサポートされている新しいリンクが追加されました、それなら使用しますか? – Smudge202

関連する問題