首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >持久性框架?

持久性框架?
EN

Stack Overflow用户
提问于 2008-10-14 11:55:47
回答 5查看 1.3K关注 0票数 1

我正在决定访问数据库的最佳策略。我知道这是一个一般性的问题,没有一个好的答案,但我会提供一些指导,我要寻找什么。在过去的几年里,我们一直在使用我们自己的持久性框架,这个框架虽然有限,但也起了作用。然而,它需要一些重大的改进,我想知道我是应该这样做还是使用现有的框架之一。我要寻找的标准,按重要程度排列如下:

  1. 客户端代码应该使用干净的对象,没有数据库知识的宽度。使用自定义框架时,客户端代码如下所示: SessionManager session =新SessionManager();Order order = session.CreateEntity();order.Date = DateTime.Now;// Set其他属性OrderDetail detail = order.AddOrderDetail();detail.Product =积;//其他属性 //立即提交所有更改session.Commit();
  2. 应该尽可能简单,不要“太灵活”。我们需要一个单一的方法来做大多数事情。
  3. 应该对面向对象编程有很好的支持。应该处理一对多和多对多的关系,应该处理继承,支持延迟加载.
  4. 配置最好是基于XML的。

以我目前的知识,我看到了以下几种选择:

  1. 改进我们目前的框架--问题在于它需要大量的努力。
  2. ADO.NET实体框架-不要有一个很好的理解,但似乎太复杂,并有不好的评论。
  3. LINQ到SQL -对面向对象的实践没有很好的处理.
  4. nHibernate --似乎是一个不错的选择,但一些用户报告了太多过时的错误。
  5. SubSonic --从一个简短的介绍来看,它似乎太灵活了。我不想那样。

你有什么建议?

编辑:

谢谢克雷格的详细回答。我认为如果我给出更多关于我们的自定义框架的详细信息,将会有更多的帮助。我在找类似的东西。这就是我们的自定义框架的工作方式:

  1. 它基于DataSets,所以您首先要配置需要的DataSets和写入查询。
  2. 您可以创建一个文件,该文件指定DataSet表如何映射到对象,并指定它们之间的关联(支持所有类型的关联)。3.自定义工具解析XML配置并生成必要的代码。4.生成的类继承自公共基类。

为了与我们的框架兼容,数据库必须符合以下标准:

  1. 每个表应该有一个列作为主键。
  2. 所有表必须具有在客户端上生成的相同数据类型的主键。
  3. 要处理继承,只支持单个表继承。此外,XML文件,几乎总是提供一种单一的方式来实现一些目标。

我们现在要支持的是:

  • 从DataSets中删除依赖项。应该自动生成SQL代码,但框架不应该生成架构。我想手动控制DB模式。
  • 对继承层次结构的更健壮的支持。
  • 与LINQ的可选集成。

我希望现在更清楚我要找的是什么。

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/200847

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档