1

在我的应用程序(数据库优先)中,主键始终由客户端创建,而不是由底层数据库创建。

在 Entity Framework v4 中,每个Entity都有EntityKey可以手动设置的属性。

但是,我在 EF6 中找不到它了?

有什么具体原因吗?

我不想ctx.SaveChanges()只调用一个Entity's键集,因为这意味着调用数据库。

我也想知道为什么ObjectContext.CreateEntityKey没了?!

4

1 回答 1

0

如果您使用的是 POCO - 这是一个如何完成的示例

public class ChronosItem 
{
    [Column, Key, Required, MaxLength(26), DatabaseGenerated(DatabaseGeneratedOption.None)]
    public string Id { get;  set; }
    ....

如果您无法调整您的实体

在您的上下文中覆盖“OnModelCreating”方法..就像这样..

protected override void OnModelCreating(DbModelBuilder modelBuilder)
        {
            modelBuilder.Entity<ChronosItem >()
                .HasKey(p => p.Id)
                .Property(p => p.Id)
                .HasDatabaseGeneratedOption(DatabaseGeneratedOption.None);
于 2016-01-20T19:52:40.017 回答