我应该在DAO标准中实现Dispose()吗?
我尝试使用EF核心和DAO标准实现CRUD,但我不知道是否应该实现以及在何处实现Dispose
关注我的代码:
interface IMaintanable<T> : IDisposable
{
void Create(T obj);
T Retrieve(uint key);
void Update(T obj);
void Delete(uint key);
}
public class DocumentDAO : IMaintanable<Document>
{
public void Create(Document obj)
{
throw new NotImplementedException();
}
public void Delete(uint key)
{
throw new NotImplementedException();
}
public void Dispose()
{
throw new NotImplementedException();
}
public Document Retrieve(uint key)
{
throw new NotImplementedException();
}
public void Update(Document obj)
{
throw new NotImplementedException();
}
}
答案 0 :(得分:0)
简短回答:不。
DAO应该是简单的datacontainers,包含很少或没有逻辑,当然不包含资源。他们也不应该实现IMaintainable
。
我知道所有的OOP教程都充满了最终使用Save()和Show()方法的Business实体示例,但实际上并不是它的完成方式。
有关基本想法,请查看存储库模式。但在使用EF时,这通常被认为是多余的。
另请注意,DAO不常用于EF - E直接代表业务/模型/域实体。使用DAO是可能的,但只考虑非常大的项目。或者,当现有数据库未能很好地映射到业务模型时。
答案 1 :(得分:0)