【发布时间】:2011-06-27 08:34:18
【问题描述】:
使用Entity Framework Code First CTP5,我如何创建一个主键列是INT而不是标识列
最好不要使用属性。
【问题讨论】:
标签: entity-framework code-first entity-framework-ctp5
使用Entity Framework Code First CTP5,我如何创建一个主键列是INT而不是标识列
最好不要使用属性。
【问题讨论】:
标签: entity-framework code-first entity-framework-ctp5
那个答案对我不起作用(在 EF 4.1 中)。
为了完成这项工作,我在我的键列中添加了 DatabaseGenerated 属性:
public class FacebookUser
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.None)]
public long FacebookId { get; set; }
// ...
}
希望这对某人有所帮助。
【讨论】:
如果您使用 fluent 接口而不是在属性上使用属性来构建实体,则可以使用 DatabaseGenerationOption 类(来自 System.ComponentModel.DataAnnotations 命名空间中的 EntityFramework.dll)。我还没有测试过它,但这就是它的样子:
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
}
【讨论】: