我想更新实体而不先从数据库加载实体。
我已经完成了这项工作,但只能了解所有实体属性,然后使用“attachto”方法。
我的问题是我不希望我的应用需要记住所有属性。例如:
Dim customerEntitiy As New shopper
customerEntitiy.shopper_id = CustomerData.CustomerID
customerEntitiy.market_code = CustomerData.MarketSector
customerEntitiy.email = CustomerData.Email
customerEntitiy.modified = DateTime.Now
context.AttachTo("shopper", customerEntitiy)
context.SaveChanges()
该实体上还有一个“已创建”字段。我不希望通过我的n层应用程序一直传递这个“创建”日期。保存到数据库时,如何“不更新”该字段?谢谢! 保罗
答案 0 :(得分:3)
我想通了,基本上你使用存根而不是附加它,然后只设置你想要更新的道具。实体框架只会更新已更改的内容。
Dim customerEntitiy As New commerce_shopper
customerEntitiy.shopper_id = CustomerData.CustomerID 'this is the primary key'
context.AttachTo("commerce_shopper", customerEntitiy)
customerEntitiy.market_code = CustomerData.MarketSector
customerEntitiy.email = CustomerData.Email
customerEntitiy.modified = DateTime.Now
context.SaveChanges()
这会绕过“已创建”的日期字段。
答案 1 :(得分:0)
我不认为可以使用保存更改来更新实体,而无需先从数据库中加载它。您拥有的代码将生成插入语句,而不是更新。
您可以使用仅更新特定文件的存储过程来完成您尝试执行的操作。
答案 2 :(得分:0)