库 Entity.Framework.Extensions(付费)有一个进行实体更新的方法:
context.Customers
.Where(c=>c.XXX = "")
.UpdateFromQuery(c=>new Customer{ Timestamp = DateTime.UtcNow })
Run Code Online (Sandbox Code Playgroud)
库 Entity.Framework.Plus(免费)有一个类似的方法来进行实体更新:
context.Customers
.Where(c=>c.XXX = "")
.Update(c=> new Customer{ Timestamp = DateTime.UtcNow })
Run Code Online (Sandbox Code Playgroud)
这两种实现有什么区别?
entity-framework entity-framework-plus entity-framework-extensions
我有以下函数,它实际上是 Z.EntityFramework.Plus 批量更新的包装器:
public static int UpdateBulk<T>(this IQueryable<T> query, Expression<Func<T, T>> updateFactory) where T : IBaseEntity, new()
{
Expression<Func<T, T>> modifiedExpression = x => new T() { ModifiedBy = "Test", ModifiedDate = DateTime.Now };
var combine = Expression.Lambda<Func<T, T>>(
Expression.AndAlso(
Expression.Invoke(updateFactory, updateFactory.Parameters),
Expression.Invoke(modifiedExpression, modifiedExpression.Parameters)
),
updateFactory.Parameters.Concat(modifiedExpression.Parameters)
); //This returns an error
return query.Update(combine);
}
Run Code Online (Sandbox Code Playgroud)
像这样调用:
decimal probId = ProbId.ParseDecimal();
db.Problems
.Where(e => e.ProbId == probId)
.UpdateBulk(e => new Problem() {
CatId = Category.ParseNullableInt(),
SubCatId = SubCategory.ParseNullableInt(),
ListId = Problem.ParseNullableInt()
}); …Run Code Online (Sandbox Code Playgroud) 我正在研究用于批量操作的实体框架扩展,并从同一开发人员那里找到了 EF Plus。现在EFE有批量操作,是付费的,EF PLus有Batch操作,号称只执行批量更新和删除,但都叫批量操作。那么EFE的批量操作和EF加批量操作有什么区别呢?
c# entity-framework-6 entity-framework-plus entity-framework-extensions
每当我需要从缓存中检索数据时,我都会使用 FromCache() 方法。
我没有设置任何默认缓存策略,并且默认使用任何 EF plus 使用。
默认缓存持续时间是多少?等一下?还是无限?
如果我有一组像这样的实体(类):
Employee, Department, Room ... etc
Run Code Online (Sandbox Code Playgroud)
如何将这些类添加到列表而不是对象列表:
像这样 :
{Employee, Department, Room}
Run Code Online (Sandbox Code Playgroud)
我想得到这些类,因为我有一个带有以下签名的方法:
AuditManager.DefaultConfiguration.Exclude<T>();
Run Code Online (Sandbox Code Playgroud)
那么如何循环一个类列表并将它们传递给这个方法,例如:
AuditManager.DefaultConfiguration.Exclude<Employee>();
Run Code Online (Sandbox Code Playgroud)