代码之家  ›  专栏  ›  技术社区  ›  dev

实体框架项目经验(.net 3.5)

  •  2
  • dev  · 技术社区  · 16 年前

    我们正在考虑/评估一个新的asp.net项目的ef。

    请告诉你是在项目中使用还是已经使用过ef v1? 也请告诉你如何与英孚在网络或桌面应用程序的经验?

    谢谢您。

    1 回复  |  直到 16 年前
        1
  •  3
  •   Simon P Stevens    16 年前

    我们在一个中型的内部项目中使用了ef。它是一个n层应用程序,服务器包含业务逻辑和自包含的ef层。客户端是一个wpf应用程序(通过wcf连接到服务器)。

    ef有很多值得喜欢的地方,它可以使da层的某些方面很快编写,但我要说的是,它目前对断开连接的应用程序没有很好的支持。如果您的应用程序非常独立,与数据库有直接连接,并且始终使用1个数据上下文,那么它工作得非常好,数据上下文管理您的数据对象,从数据库中提取数据并适当地更新数据库。

    一旦你试图用任何形式的n层结构来断开你的客户机,尽管事情变得越来越困难。您要么必须管理实体与数据上下文的断开连接和重新连接,要么必须以某种方式将数据上下文序列化到客户端。你必须使用多个数据上下文(部分原因是我们的服务器是无状态的,但也因为你会陷入一个巨大的混乱,试图使用一个单一的数据上下文多个客户端),这一切都变得有点棘手的管理。我们解决方案的一部分是拥有从较低级别的“ef数据对象”创建的单独“业务对象”。ef随后将管理这些数据对象(持久化它们并从数据库中加载它们等),但是我们自己的bll层将管理业务对象。保存和加载都需要从较高级别的对象转换到较低级别的对象,反之亦然。

    总的来说,一切都很顺利,但事后看来,ef还没有完全做好企业级开发的准备。我听说.net 4.0中的下一个ef版本对断开连接和n层应用程序有更好的支持,但我个人并没有对此感到厌倦。