DAO实现Dispose

时间:2018-04-12 16:39:19

标签: .net entity-framework dao 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();
            }
        }

2 个答案:

答案 0 :(得分:0)

简短回答:不。

DAO应该是简单的datacontainers,包含很少或没有逻辑,当然不包含资源。他们也不应该实现IMaintainable

之类的东西

我知道所有的OOP教程都充满了最终使用Save()和Show()方法的Business实体示例,但实际上并不是它的完成方式。

有关基本想法,请查看存储库模式。但在使用EF时,这通常被认为是多余的。

另请注意,DAO不常用于EF - E直接代表业务/模型/域实体。使用DAO是可能的,但只考虑非常大的项目。或者,当现有数据库未能很好地映射到业务模型时。

答案 1 :(得分:0)

你写的代码不需要是一次性的,因为到目前为止你的班级没有状态。

但是,一旦实现了所有其他方法,您可能会引入字段,例如实体框架容器或SQL连接,这些字段在处理类时需要处理。如果是这样,您需要关注Microsoft文档(例如thisthis)以获取处理对象的正确模式。