警告 CA1001 实施 ID可忽略不计



我正在使用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 继承?


何时抑制警告(您的问题可以忽略不计吗?不)

不要禁止显示来自此规则的警告。

最新更新