我们将Linq2DB ORM库用于我们的.NET ORM模型请参阅https://github.com/linq2db/linq2db
如何发送仅包含已更改列的更新?现在,SQL查询包括所有列和值
发布于 2015-06-08 00:22:26
目前还没有机制来跟踪对象级别的更改以仅更新已更改的属性,但如果您知道哪些列发生了更改,则可以使用set函数和update函数来执行部分更新(就像github页面中给出的示例一样)
using (var db = new DbNorthwind())
{
db.Product
.Where(p => p.ProductID == product.ProductID)
.Set(p => p.Name, product.Name)
.Set(p => p.UnitPrice, product.UnitPrice)
.Update();
}
发布于 2015-09-12 21:40:52
首先,linq2db是一个轻量级的对象模型。这意味着它没有繁重的上下文,它不知道实体中的任何变化,而且永远也不会知道-如果你想要有变化跟踪,而不是使用实体框架或NHibernate。因此,你必须自己实现变更跟踪(如果你真的需要的话),或者更新整个实体(就像你做的那样)。如果您知道已更新的列,则可以使用提供的任何语法(请参阅Linq2Db crud operations)。如果您只知道更改的列名-您可以动态构造linq表达式并使用其中一种语法Linq2Db crud operations。
https://stackoverflow.com/questions/30686063
复制相似问题