我正在使用Repository
模式,并拥有通用的存储库类
public class GeneralRepository<T> where T:class
{
private Context con = new Context();
protected DbSet<T> Dbset { get; set; }
public GeneralRepository()
{
Dbset = con.Set<T>();
}
public IEnumerable<T> GetAll()
{
return Dbset;
}
public T SelectByID(int? id)
{
var rec = Dbset.Find(id);
return rec;
}
public void AddRecord(T entity)
{
Dbset.Add(entity);
}
public void EditRecord(T entity)
{
con.Entry(entity).State = EntityState.Modified;
}
public void Detach(T entity)
{
con.Entry(entity).State = EntityState.Detached;
}
public void Save()
{
con.SaveChanges();
}
}
有多个本机存储库正在继承我的常规存储库,例如:
public class EmailAssignRepository:GeneralRepository<EmailAssign>
public class DepartmentRepository:GeneralRepository<Department>
我的代码一切运行正常,但是当我运行代码分析时,它给了我警告。这是什么意思?可以忽略不计吗?如果不是,该如何克服这个警告?
答案 0 :(得分:3)
基于MSDN:
一个类实现
IDisposable
接口来处理非托管接口 它拥有的资源。IDisposable
类型的实例字段 表示该字段拥有非托管资源。一类 声明一个IDisposable
字段间接拥有一个非托管资源 并应实现IDisposable
接口。如果不上课 直接拥有任何非托管资源,因此不应实施 终结器。
原因:
一个类声明并实现一个实例字段,该实例字段是
System.IDisposable
类型,并且该类未实现IDisposable
。
如何解决违规行为
要解决违反此规则的问题,请实施
IDisposable
并从System.IDisposable.Dispose
方法调用 字段。
请参见:How to implement IDisposable inheritance in a repository?
何时禁止显示警告(您的问题可以忽略不计吗?否)
请勿根据此规则禁止警告。