我正在使用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>
在我的代码中一切运行良好,但是当我运行代码分析时,它给了我警告。什么意思?可以忽略不计吗?如果不是,如何克服这个警告?
基于 MSDN:
类实现
IDisposable
接口以释放非托管 它拥有的资源。作为IDisposable
类型的实例字段 指示域拥有非托管资源。一个类 声明IDisposable
域间接拥有非托管资源 并应实现IDisposable
接口。如果类没有 直接拥有任何非托管资源,它不应该实现 终结器。
原因:
类声明并实现一个实例字段,该字段为
System.IDisposable
类型和类不实现IDisposable
。
如何解决违规问题
要解决与此规则的冲突,请实施
IDisposable
并从System.IDisposable.Dispose
方法调用 的Dispose
方法 田。
并看到这个: 如何在存储库中实现 IDisposable 继承?
何时抑制警告(您的问题可以忽略不计吗?不)
不要禁止显示来自此规则的警告。