【发布时间】:2015-03-30 19:17:56
【问题描述】:
我对 C# 比较陌生,对 WPF 也很陌生。我一直在尝试围绕 MVVM 的概念展开思考,现在我已经将 ADO Entity 加入其中。
我的示例应用程序的目的是跟踪 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会尝试再次输入。因此错误。您可以删除Add行并保存。 -
您使用的是什么数据库技术?完整的 SQL 服务器? SQL Express 实例?内置的 LocalDb?
-
@paqogomez 非常感谢,我不知道是这种情况;我已经删除了那条线。不幸的是,SaveChanges() 仍然没有插入我的对象。
-
@Claies 我创建了一个新的基于服务的数据库 (.mdf),它生成了一个 .edmx 文件。恐怕这就是我所知道的,所以我最好的选择是使用“LocalDb”
标签: c# wpf entity-framework