35

Entity Framework Code First CTP5を使用して、INTであり、ID列ではない主キー列を作成するにはどうすればよいですか?

できれば属性を使用しないでください。

4

3 に答える 3

48

その答えは私にとってはうまくいきませんでした(EF 4.1で)。

これを機能させるために、DatabaseGenerated 属性をキー列に追加しました。

public class FacebookUser
{
  [Key]
  [DatabaseGenerated(DatabaseGeneratedOption.None)]
  public long FacebookId { get; set; }

  // ...
}

これが誰かに役立つことを願っています。

于 2011-05-13T18:53:25.147 に答える
33

プロパティの属性を使用するのではなく、流暢なインターフェイスを使用してエンティティを構築している場合は、DatabaseGenerationOptionクラス(EntityFramework.dllのSystem.ComponentModel.DataAnnotations名前空間)を使用できる場合があります。私はそれをテストしていませんが、これはそれがどのように見えるかです:

modelBuilder
    .Entity<Foo>()
    .Property(f => f.Id)
    .HasDatabaseGeneratedOption(DatabaseGeneratedOption.None);
于 2011-02-15T04:33:28.350 に答える
12

小さな変化

public class User
{

  [Required, Key, DatabaseGenerated(DatabaseGeneratedOption.None)]

  public int ID { get; set; }

  // Rest of the code
}
于 2011-08-31T17:36:01.057 に答える