在我的应用程序(数据库优先)中,主键始终由客户端创建,而不是由底层数据库创建。
在 Entity Framework v4 中,每个Entity
都有EntityKey
可以手动设置的属性。
但是,我在 EF6 中找不到它了?
有什么具体原因吗?
我不想ctx.SaveChanges()
只调用一个Entity's
键集,因为这意味着调用数据库。
我也想知道为什么ObjectContext.CreateEntityKey
没了?!
在我的应用程序(数据库优先)中,主键始终由客户端创建,而不是由底层数据库创建。
在 Entity Framework v4 中,每个Entity
都有EntityKey
可以手动设置的属性。
但是,我在 EF6 中找不到它了?
有什么具体原因吗?
我不想ctx.SaveChanges()
只调用一个Entity's
键集,因为这意味着调用数据库。
我也想知道为什么ObjectContext.CreateEntityKey
没了?!
如果您使用的是 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);