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