DAO 实现 Dispose
DAO Implements Dispose
我应该在 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();
}
}
简答:否。
DAO 应该是简单的数据容器,包含很少或没有逻辑,当然也不包含资源。他们也不应该实施类似 IMaintainable
.
的东西
我知道所有 OOP 教程都充满了以 Save() 和 Show() 方法结尾的业务实体示例,但实际上并非如此。
要了解基本思想,请查看存储库模式。但在使用 EF 时,这通常被认为是多余的。
另请注意,DAO 并不常用于 EF - E 直接代表 business/model/domain 实体。使用 DAO 是可能的,但只会考虑用于非常大的项目。或者当现有数据库不能很好地映射到业务模型时。
您编写的代码不需要是一次性的,因为到目前为止您的 class 没有状态。
但是,一旦您实施了所有这些其他方法,您可能会引入字段,例如 Entity Framework 容器或 SQL 连接,这些字段将需要在您的 class 被处置时被处置。如果是这样,您需要遵循 Microsoft 文档(例如 this and this)以了解正确的对象处理模式。
我应该在 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();
}
}
简答:否。
DAO 应该是简单的数据容器,包含很少或没有逻辑,当然也不包含资源。他们也不应该实施类似 IMaintainable
.
我知道所有 OOP 教程都充满了以 Save() 和 Show() 方法结尾的业务实体示例,但实际上并非如此。
要了解基本思想,请查看存储库模式。但在使用 EF 时,这通常被认为是多余的。
另请注意,DAO 并不常用于 EF - E 直接代表 business/model/domain 实体。使用 DAO 是可能的,但只会考虑用于非常大的项目。或者当现有数据库不能很好地映射到业务模型时。
您编写的代码不需要是一次性的,因为到目前为止您的 class 没有状态。
但是,一旦您实施了所有这些其他方法,您可能会引入字段,例如 Entity Framework 容器或 SQL 连接,这些字段将需要在您的 class 被处置时被处置。如果是这样,您需要遵循 Microsoft 文档(例如 this and this)以了解正确的对象处理模式。