2008-10-09 31 views
4

也许还有其他的东西? 我已经在使用nHibernate,但偶尔会遇到一个懒惰的初始化代理对象实际上不会初始化的问题。我正在考虑尝试其他的东西。该网站拥有用户帐户,用户帖子和照片,并将这些内容过滤为特定位置名称和标题/说明匹配。更不用说投票,评级和标记作为最爱。所有这些都会导致不同数量的数据库负载。你会选择什么ASP.NET Web应用程序; nHibernate,Linq或SubSonic

+0

我真的鼓励试图发现为什么你间歇的延迟加载问题与NHibernate。这在正常情况下不会发生。 – 2008-10-09 20:39:26

+0

这可能是由于没有使用最新版本,因为我们在NHibernate上构建的访问层最常用的方法不再受支持。看重写它可能与选择新解决方案一样困难。 – dlamblin 2008-10-21 01:19:24

回答

1

我喜欢SubSonic,因为它很容易配置和生成DAL。这个实现不是一个完整的ORM,因为它只为每个表创建一个类。能够使用存储过程可以补偿何时需要编写作为连接结果的对象。同样,SubSonic旨在实现功能性,因此它可以帮助您快速实现项目目标。

也就是说,您无法使用SubSonic来“编写对象” - 没有描述类之间关系的配置文件。数据库仍然决定你如何塑造你的解决方案。

2

我们在一个相当活跃的站点上使用ADO.NET实体框架(每天10,000次访问)。这对我们来说是坚实的。缺乏延迟加载很烦人,但它会让你考虑去数据库。

0

LINQ是一个不错的选择。它在Stackoverflow中使用,在我目前的项目中,我们使用LINQ来访问数据。

5

SubSonic目前用于我们所有的webform应用程序,并取得了巨大成功。在几分钟内,整个数据库就可以从头开始生成,随时准备在您的应用程序中使用。 SubSonic创作者Rob Conery提供了一些精彩的网络广播,详细介绍了在Web应用程序中设置SubSonic位的过程以及一些很酷的演示,以帮助您开始。检查出SubSonic Project

4

我一直在使用LLBLGen Pro作为我的ORM大约一年,它的工作得很好。虽然我没有使用SubSonic,但我被告知它们是相似的。从头开始,它可以从数据库创建一个数据访问层,并且只需几分钟即可使用。有一个轻微的学习曲线,至少对我来说是这样,但帮助文件提供了足够的信息来帮助你完成几乎任何你遇到的问题。该应用程序可以按照没有问题安装的方式使用,但也支持大量定制(可能太多?)。

+1

LLBLGen临岩!延迟加载,预取路径(以最少的查询获取整个图),支持无限的嵌套谓词,连接等。另外,扩展生成的代码非常容易;自助服务模式使用继承策略来允许扩展而不中断生成。 – 2008-10-16 05:16:34

0

Hibernate for Java项目,但毫无疑问,LINQ for .Net。为什么在内置LINQ时添加外部依赖关系?

0

我也会去LINQ,但我必须承认LINQ to SQL有分层问题。我已经阅读了很多关于LINQ to SQL的文章,并且他们都建议它基本上是为RAD应用程序创建的。

2

如果你的数据库中的继承模型与Linq的非常有限的继承支持一起工作,那么我说去Linq。如果你需要更复杂的继承场景,那么我会说,你应该坚持使用NHibernate,并努力解决你遇到的任何痛苦。

1

如果您对懒惰的初始化代理有特定的麻烦,为什么你没有这样做呢?或只有懒装袋。我认为这是值得一试,然后重写你的应用程序的框架没有延迟加载。

1

我在微软生态系统的经验:

我使用LINQ2SQL上几个项目,我已经运行到该azamsharp提到的“分层”的问题。

不是说如果你将POCO发送回你的逻辑或UI层,它会有很大的帮助,但是Repository模式的实现对这个令人讨厌的分层和关注问题的分离有点帮助。

A good basic Repository Impl

对于使用像投票或统计数据(基本上任何域对象需要显示或不同操作上比它在数据库的代表)的ADO.Net实体框架为您提供了一定的优势复杂的语义什么。它可以通过包含复杂的数据检索来简化您的业务逻辑/数据访问层。

ADO.Net Entity Framework Overview

希望帮助!

3

我会使用NHibernate。持久性无知是我的主要销售字体之一,而不是绑定到数据库是另一个。实体框架有着深刻的缺陷,不仅仅是缺乏延迟加载。 EF和LINQ2SQL都是新技术,而NHibernate非常成熟并且看到了更多的操作。

NHibernate的另一个好处是无需编辑您的数据就可以切换数据库。我将它用于本地运行的集成测试,running them against SQLite and then SQL Server on the CI server

相关问题