我对C#比较陌生,对WPF也很新颖。我一直试图围绕MVVM的概念进行研究,现在我已经将ADO实体引入混合。DbContext SaveChanges
我的示例应用程序的目的是跟踪CAD项目。我从数据库中拉出项目并成功填充视图;大。我已经手动添加了这些信息,以测试视图是否正常工作。
我现在从我的应用程序尝试通过我从ICommand启动的函数添加一个新项目。据我了解,我正在创建一个新的DBContext对象,添加一个项目并保存我的更改。执行“SaveChanges()”成功告诉我1行已更新,但是当我检查时,数据不在那里?除此之外,如果我再次调用SaveChanges()(在同一个调试会话中),它会抛出一个错误来指示有多个条目。同样,当通过“显示表格数据”查看数据时,我什么都看不到。
public void AddNewItem(object parameter)
{
using (var dbq = new DBEntities()) {
var tempItem = dbq.OutstandingCAD.Create();
tempItem.Id = 2;
dbq.OutstandingCAD.Add(tempItem);
dbq.SaveChanges();
}
}
有人可以看看那小块代码,并建议我所做的是否正确以及我的问题是否在其他地方?
非常感谢
当您从数据库创建一个实体时,它将一个连接的对象。所以调用'Add'会尝试重新放入。因此错误。您可以删除“添加”行并保存。 – paqogomez 2015-03-30 19:22:52
您使用的是哪种数据库技术?一个完整的SQL服务器?一个SQL Express实例?内置的LocalDb? – Claies 2015-03-30 19:23:25
@paqogomez非常感谢,我不知道这是这种情况;我已经删除了该行。不幸的是,SaveChanges()仍然没有插入我的对象。 – 2015-03-30 19:30:05