mirror of
https://gitee.com/dotnetchina/OpenAuth.Net.git
synced 2025-09-18 09:44:28 +08:00
修复机构添加编辑的异常的bug
This commit is contained in:
@@ -145,7 +145,7 @@ namespace OpenAuth.Repository
|
||||
|
||||
private IQueryable<T> Filter(Expression<Func<T, bool>> exp)
|
||||
{
|
||||
var dbSet = Context.Set<T>().AsQueryable();
|
||||
var dbSet = Context.Set<T>().AsNoTracking().AsQueryable();
|
||||
if (exp != null)
|
||||
dbSet = dbSet.Where(exp);
|
||||
return dbSet;
|
||||
|
@@ -8,6 +8,7 @@
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
using System.Data.Entity;
|
||||
using System.Data.Entity.Infrastructure;
|
||||
using OpenAuth.Repository.Domain;
|
||||
using OpenAuth.Repository.Mapping;
|
||||
|
||||
@@ -25,6 +26,11 @@ namespace OpenAuth.Repository
|
||||
{
|
||||
// 关闭语义可空判断
|
||||
Configuration.UseDatabaseNullSemantics = true;
|
||||
|
||||
//与变量的值为null比较
|
||||
//ef判断为null的时候,不能用变量比较:https://stackoverflow.com/questions/682429/how-can-i-query-for-null-values-in-entity-framework?utm_medium=organic&utm_source=google_rich_qa&utm_campaign=google_rich_qa
|
||||
(this as IObjectContextAdapter).ObjectContext.ContextOptions.UseCSharpNullComparisonBehavior = true;
|
||||
Database.Log = s => System.Diagnostics.Debug.WriteLine(s);
|
||||
}
|
||||
|
||||
public OpenAuthDBContext(string nameOrConnectionString)
|
||||
|
@@ -85,9 +85,14 @@ namespace OpenAuth.Repository
|
||||
public void Update<T>(T entity) where T:class
|
||||
{
|
||||
var entry = this.Context.Entry(entity);
|
||||
//todo:如果状态没有任何更改,会报错
|
||||
entry.State = EntityState.Modified;
|
||||
|
||||
//如果数据没有发生变化
|
||||
if (!this.Context.ChangeTracker.HasChanges())
|
||||
{
|
||||
entry.State = EntityState.Unchanged;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public void Delete<T>(T entity) where T:class
|
||||
@@ -136,7 +141,7 @@ namespace OpenAuth.Repository
|
||||
|
||||
private IQueryable<T> Filter<T>(Expression<Func<T, bool>> exp) where T : class
|
||||
{
|
||||
var dbSet = Context.Set<T>().AsQueryable();
|
||||
var dbSet = Context.Set<T>().AsNoTracking().AsQueryable();
|
||||
if (exp != null)
|
||||
dbSet = dbSet.Where(exp);
|
||||
return dbSet;
|
||||
|
Reference in New Issue
Block a user