NHibernate 和 Silverlight:
NHibernate 贡献者之一 Ayende Rahien 最近发布了一篇博文关于 NHibernate 和 Silverlight:
我有一些关于 NHibernate 和 Silverlight 的问题。这其实是一件很容易回答的事情。
甚至不要尝试。他们合不来。事实上,他们甚至无法相处。
Silverlight 没有 System.Data.IDbConnection,您可以放心地假设它对于 NHibernate 来说有些重要。
因此,在 Silverlight 应用程序中运行 NHibernate 可能是为了访问本地数据库。但我不认为这是大多数人在询问 NHibernate 和 Silverlight 时真正想到的。他们想了解服务器上的 NHibernate 和客户端上的 Silverlight。
这也很容易回答,它将像任何客户端/服务器系统一样工作。所有相同的规则均适用。
因此,只要您不打算直接从 Silverlight 客户端使用 NHibernate,它就应该可以工作。
休眠状态:
NHibernate 是一个很棒的 ORM,但它的学习曲线相当陡峭,因此如果您选择 NHibernate,您应该准备好投入一些时间来学习该框架。如果您进行了这项投资,您将获得 NHibernate 提供的灵活性和功能的回报。
城堡活动记录:
Castle ActiveRecord 是一个构建在 NHibernate 之上的框架,因此与 NHibernate 非常相似。它稍微减少了学习曲线,因为它添加了一些额外的抽象。顾名思义,它是为与 ActiveRecord 模式一起使用而构建的,并且包含一个基类,如果您不介意使用 ActiveRecord 基类,该基类将为您提供相当多的功能。
LINQ 到 SQL:
LINQ to SQL 和 ADO.NET Entity Framework 是 .NET Framework 中包含的两个 ORM。 LINQ to SQL 是一个比实体框架更小、更简单的框架,但它具有一些不错的功能,并且非常容易上手。
实体框架:
Entity Framework 也很容易上手,但由于它仍处于版本 1,因此在当前版本中存在一些相当大的问题。但是,Entity Framework 的下一个版本将改进并修复当前的许多缺点。
框架的 LINQ 和架构生成:
所有这些框架都支持使用 LINQ 作为查询语言。 LINQ to SQL 和 NHibernate 可以根据您的域类和映射为您生成架构。实体框架无法在 v1 中生成架构,但 v2 将添加该功能。