This answer says Linq 针对的开发人员群体与 NHibernate、CaSTLe 等略有不同。
作为 C# 的新手,没关系围绕它的所有数据库内容:
- 除了 NHibernate、CaSTLe 和 Linq,还有其他主要的 SQL 包装器吗?找不到更好的术语了?
- 它们之间有什么区别?
- 他们面向什么样的开发者或开发人员?
-亚当
最佳答案
当您说 CaSTLe 时,我假设您指的是 CaSTLe Active Record?
不同之处在于,NHibernate 是一个 OR/M,面向希望专注于领域而非数据库的开发人员。使用 linq to sql,您的数据库是预先存在的,您是关系,一些编程将由您的数据库定义方式驱动。
现在在 NHibernate 和 CaSTLe ActiveRecord 之间——它们的相似之处在于您从域中驱动您的应用程序设计,但是对于 NHibernate,您提供映射 xml 文件(或使用流畅的 NHibernate 映射类),而在 Active Record 中您使用配置约定(使用属性来定义任何不自然适合的列和设置)。 CaSTLe Active Record 仍在后台使用 NHibernate。
一个 OR/M 不一定是“唯一正确的方法”。这取决于您的环境、您开发的应用程序和您的团队。
您可能还想查看 SubSonic .它非常适合事件记录,但不适用于您希望主要关注您的域的项目。根据项目的不同,我通常使用 NHibernate(带有 CaSTLe Active Record)或 Subsonic
关于c# - NHibernate、CaSTLe、Linq 之间的区别——它们针对的是谁?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/82632/