Entity Framework Code First CTP5を使用して、INTであり、ID列ではない主キー列を作成するにはどうすればよいですか?
できれば属性を使用しないでください。
Entity Framework Code First CTP5を使用して、INTであり、ID列ではない主キー列を作成するにはどうすればよいですか?
できれば属性を使用しないでください。
その答えは私にとってはうまくいきませんでした(EF 4.1で)。
これを機能させるために、DatabaseGenerated 属性をキー列に追加しました。
public class FacebookUser
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.None)]
public long FacebookId { get; set; }
// ...
}
これが誰かに役立つことを願っています。
プロパティの属性を使用するのではなく、流暢なインターフェイスを使用してエンティティを構築している場合は、DatabaseGenerationOptionクラス(EntityFramework.dllのSystem.ComponentModel.DataAnnotations名前空間)を使用できる場合があります。私はそれをテストしていませんが、これはそれがどのように見えるかです:
modelBuilder
.Entity<Foo>()
.Property(f => f.Id)
.HasDatabaseGeneratedOption(DatabaseGeneratedOption.None);
小さな変化
public class User
{
[Required, Key, DatabaseGenerated(DatabaseGeneratedOption.None)]
public int ID { get; set; }
// Rest of the code
}