2015-10-20 68 views
1

在我的项目中,我使用Entity framework 6和Breeze来获取数据。 在客户端,我创造处于修改状态微风实体,如下图所示,在实体框架中使用breeze通过id(主键)更新数据库记录6

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’的原始值异常,不能设置,因为该属性是部分实体的关键。“

在此先感谢!

回答

1

你需要使用一个initializer设置键的值在创建时的实体:您的回复

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

感谢。 我已经使用该代码,但现在它向我显示异常,如 “{”UPDATE语句与FOREIGN KEY约束冲突\“FK__Following__TestId__76D69450 \”冲突。冲突发生在数据库\“TestDB \”,表\“dbo.TestTable \”,列'Id'。\ r \ n该语句已被终止。“}”。 – Pankajya

+0

因此,我创建实体为 breeze.manager.createEntity(Table_Name,{Id:id},breeze.EntityState.Unchanged); 所以现在它工作正常。 非常感谢你...... – Pankajya

+0

大家好, 我发现了上述问题的解决方案,但我仍然想知道为什么发生与实体框架6和breeze-client v 1.5的确切原因0.4? 当我在那时使用EF5和老版本的breeze-client时,这种问题没有发生。 如果可能请亲切地告诉我它的原因。 感谢你! – Pankajya