1. ホーム
  2. entity-framework

[解決済み] Entity Framework コード 一意の列

2022-07-01 04:50:29

質問

Entity Framework 4.3を使用し、Code Fistを使用しています。

私はクラスを持っています

public class User
{
   public int UserId{get;set;}
   public string UserName{get;set;}
}

データベーステーブルを作成するとき、UserNameがユニークでなければならないことをEntity Frameworkに伝えるにはどうすればよいですか? 可能であれば、設定ファイルの代わりにデータアノテーションを使用することを希望します。

どのように解決するのですか?

EF4.3での解決方法

一意なユーザ名

としてカラムの上にデータアノテーションを追加します。

 [Index(IsUnique = true)]
 [MaxLength(255)] // for code-first implementations
 public string UserName{get;set;}

一意のID , 私は私の列の上に装飾[キー]を追加し、完了しました。 ここに書かれているのと同じ解決策です。 https://msdn.microsoft.com/en-gb/data/jj591583.aspx

IEです。

[Key]
public int UserId{get;set;}

回答例

データアノテーションの使用

[Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
[Column("UserId")]

マッピングを用いた

  mb.Entity<User>()
            .HasKey(i => i.UserId);
        mb.User<User>()
          .Property(i => i.UserId)
          .HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity)
          .HasColumnName("UserId");