2

我对我的 DbContext 进行了一些操作以进行保存。

我有两个实体 - 材质和颜色。实体具有多对多的关系。

我尝试这样做:

var color = context
 .Colors
 .Include("Materials")
 .Where(g => g.Id == (colorId))
 .FirstOrDefault();
var mater = context
 .Materials
 .Include("Colors")
 .SingleOrDefault(c => c.Name == material.Name);
mater.Colors.Add(color);
context.SaveChanges();

当程序试图运行context.SaveChanges()时,它会抛出一个异常DbUpdateException

Unable to update the EntitySet 'MaterialColors' because it has a 
DefiningQuery and no <InsertFunction> element exists in 
the <ModificationFunctionMapping> element to support the current operation.

如何解决?

4

1 回答 1

0

EF映射的每个表都必须有PK。如果它没有 PK,它将被映射为只读视图。您必须转到您的数据库并将MaterialColors两个 FK 标记为复合 PK。比更新你的模型。

于 2012-05-10T08:07:22.467 回答