修复机构添加编辑的异常的bug

This commit is contained in:
yubao
2018-05-20 13:54:56 +08:00
parent 18d6d416d7
commit 9faedc1260
7 changed files with 37 additions and 13 deletions

View File

@@ -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;

View File

@@ -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)

View File

@@ -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;