2009-06-17 136 views
2

项目的经验,我们正在考虑/新ASP.NET项目评估EF。实体框架(.NET 3.5)

请告知,如果你正在使用或已经使用,EF V1的一个项目? 请同时告诉您在网络或桌面应用程序中使用EF的经历如何?

谢谢。

回答

3

我们使用EF一个中等规模的内部项目。这是一个包含业务逻辑和自包含EF层的服务器的n层应用程序。客户端是一个WPF应用程序(通过WCF连接到服务器)。

有说不完的喜欢的EF,它可以使你的DA层的某些方面非常快写,但有一点我要说的是,它目前没有断开连接的应用很好的支持。如果您的应用程序非常独立,与数据库直接相连并始终使用1个数据上下文,则数据上下文管理您的数据对象,适当地从中提取数据并更新数据库。

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

一切的一切事情都工作确定,但事后我要说的是,EF没有完全准备好严重的企业级开发。我听说在.net 4.0中使用EF的下一个版本对断开连接和n层应用提供了更好的支持,但是我个人并没有对此感到厌倦。

+0

是否有替代的ORM工具,你会建议更好地处理断开状态? – Merritt 2009-06-23 19:26:49