3

属性と DataAnnotation を持つクラスで宣言された複合キーを取得しようとしています。

[Key]
[Column(Order=1)]
public Guid Id { get; set; }

[Key]
[Column(Order=2)]
public int Nr { get; set; }

これがうまくいかないようです。これまでに見つけたのは流暢なオプションだけでしたが、これを注釈のみで行いたいと思います。

明確にするために:IDとNrの2つのフィールドで構成される主キーを持つテーブルを作成するDataAnnotationの方法を探しています...

助けてくれてありがとうアンドレアス

4

2 に答える 2

9

これは、Fluent API を使用して次のように簡単に行うことができます。

modelBuilder.Entity<YourClass>().HasKey(obj => new {obj.Id,obj.Nr});

また、コンストラクターに次の行を継承しEntityTypeConfigurationて追加する別のクラスを作成することもできます。

public class <*Name*>Mapping:EntityTypeConfiguration<*Name*> 

      public <*Name*>Mapping(){
             this.HasKey(obj => new {obj.Id,obj.Nr});
      }
}
于 2011-08-17T10:30:26.040 に答える
0

先週も同様の質問をしましたが、流暢な構文を探していました。Morteza によって提供された回答 (ef/CTP5 に関する彼の回答をさらに検索してください。彼は素晴らしいです) にも、データ注釈を使用するための構文が示されています。

ここにリンクがあります。 お役に立てれば。

于 2011-02-04T16:38:27.797 に答える