Entity framework 在实体框架6中使用breeze按id(主键)更新数据库记录

Entity framework 在实体框架6中使用breeze按id(主键)更新数据库记录,entity-framework,breeze,Entity Framework,Breeze,在我的项目中,我使用EntityFramework6和Breeze获取数据。 在客户端,我正在创建一个处于修改状态的breeze实体,如下所示 var entity = manager.createEntity(entityName); entity.entityAspect.setModified();//Modifying the state entity.Id(id);//pushing existing primary key value entity.IfInactive(tru

在我的项目中,我使用EntityFramework6和Breeze获取数据。 在客户端,我正在创建一个处于修改状态的breeze实体,如下所示

var entity = manager.createEntity(entityName);

entity.entityAspect.setModified();//Modifying the state

entity.Id(id);//pushing existing primary key value

entity.IfInactive(true); //updating the record value from false to true

saveChanges(msg).then(function () { //calling save changes
   console.log('Success.');
});
但在savechanges期间,它会给出一个异常,如“无法设置属性“Id”的原始值,因为该属性是实体键的一部分。”

提前谢谢

创建实体时,需要使用设置键的值:

var entity = manager.createEntity(entityName, { Id: id });

谢谢你的回复。我曾经使用过该代码,但现在它向我显示了异常,如“{”UPDATE语句与外键约束“FK\U Following\UU TestId\UU 76D69450”冲突。冲突发生在数据库“TestDB\”、表“dbo.TestTable\”、列“Id”中。\r\n该语句已终止。“}”因此,我创建了一个实体作为breeze.manager.createEntity(表名称,{Id:Id},breeze.EntityState.Unchanged);因此,现在它运行良好。非常感谢……大家好,我找到了上述问题的解决方案,但我仍然想知道为什么Entity framework 6和breeze client v 1.5.4会出现这种情况的确切原因?当我使用EF5和旧版本的breeze客户端时,这种问题并没有发生。如果可能,请告诉我原因。谢谢你!