1
我创建了被包含该实体的模型:实体框架不添加[关键]
现在,当EF BTW。该CodeGenerator正在生成的代码为这个实体,对于PK缺少注释:
public partial class tLieferscheinPos
{
public int kLieferscheinPos { get; set; }
public int kLieferschein { get; set; }
public Nullable<int> kBestellPos { get; set; }
public Nullable<decimal> fAnzahl { get; set; }
}
当我用的connectionString(其中eazybusinessEntitis
是DbContext
)创建的DbContext现在运行:
this.context = new eazybusinessEntities(connStr);
EF会随时更新我的数据库 - 或者抛出异常(当我在OnModelCreating
删除throw new UnintentionalCodeFirstException();
):
One or more validation errors were detected during model generation:
\tSystem.Data.Entity.Edm.EdmEntityType: : EntityType 'tLieferscheinPos' has no key defined. Define the key for this EntityType.
\tSystem.Data.Entity.Edm.EdmEntitySet: EntityType: EntitySet 'tLieferscheinPos' is based on type 'tLieferscheinPos' that has no keys defined.
当我将[Key]
添加到属性kLieferscheinPos
时,它工作正常。但是,当我从模型中重新创建代码时,总是会覆盖此更改。
如何正确解决此问题?
好吧,是不是'kLieferscheinPos'表中的**主键**列?它应该是**! (然后,我认为EF会将其识别为关键字并据此设置属性) – 2014-09-20 10:38:47
您是否在EF中使用模型第一种方法? – 2014-09-20 10:41:42
如果你命名密钥列kLieferscheinPosID它会生成密钥属性呢? – pln 2014-09-20 10:51:19