可以说我查询数据库并加载项目列表。然后我在详细视图窗体中打开其中一个项目,而不是从数据库中重新查询项目,而是从列表中的数据源创建项目的一个实例。在没有先查询的情况下更新记录?
有没有一种方法可以更新数据库记录而不需要获取单个项目的记录?
这里有一个例子,我现在怎么做:
dataItem itemToUpdate = (from t in dataEntity.items
where t.id == id
select t).FirstOrDefault();
然后拉动记录我更新的项目的一些价值观和推回录后:
itemToUpdate.itemstatus = newStatus;
dataEntity.SaveChanges();
我想会有更好的方法来做到这一点,有什么想法?
这不是一个非常糟糕的方式做事情。你有并发访问该表吗? – 2010-11-18 19:15:05
我会认为这是像EF这样的ORM在使用中的用法。要允许在应用程序上下文中对要创建/修改/删除的对象执行操作,而不关心底层数据库实现? – 2010-11-18 19:24:44
我认为对于TSQL背景的开发人员来说,试图接受和接受ORM的方法是有效的,但是查找记录只是为了更新它,而不会使用获取的数据。开发人员不需要关心底层数据库实现的这个概念就是一个瓶颈。开发人员对整个系统的了解越多,解决方案就越好。选项从来都不是一件坏事。 – barrypicker 2011-12-19 20:16:49