1. ホーム
  2. entity-framework

[解決済み】Entity Frameworkで複数のカラムにユニークキー制約を設定する

2022-04-18 05:01:10

質問

Entity Framework 5.0 Code Firstを使用しています。

public class Entity
 {
   [Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
   public string EntityId { get; set;}
   public int FirstColumn  { get; set;}
   public int SecondColumn  { get; set;}
 }

との組み合わせを作りたい。 FirstColumnSecondColumn を一意とする。

Id  FirstColumn  SecondColumn 
1       1              1       = OK
2       2              1       = OK
3       3              3       = OK
5       3              1       = THIS OK 
4       3              3       = GRRRRR! HERE ERROR

どうにかして、そのようなことはできないのでしょうか?

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

Entity Framework 6.1では、このようなことができるようになりました。

[Index("IX_FirstAndSecond", 1, IsUnique = true)]
public int FirstColumn { get; set; }

[Index("IX_FirstAndSecond", 2, IsUnique = true)]
public int SecondColumn { get; set; }

属性の2番目のパラメータで、インデックスのカラムの順序を指定します。

詳しくはこちら MSDN