This answer says表示,Linq针对的是与NHibernate,Castle等不同的开发人员群体.
对于C#来说,相当新鲜,不要忘记围绕它的所有数据库:
>还有其他专业,因为缺乏一个更好的术语,sql包装比NHibernate,Castle,Linq?
>他们之间有什么区别?
>他们的目标是什么样的开发者或开发者?
-亚当
解决方法
当你说城堡我认为你的意思是城堡活动记录?
不同之处在于NHibernate是一个OR / M,针对那些想要专注于域而不是数据库的开发人员.使用LINQ to sql,你的数据库是预先存在的,你是关系,一些编程将由你的数据库的定义驱动.
现在在NHibernate和Castle ActiveRecord之间 – 它们类似于您从域驱动应用程序设计,但是使用NHibernate,您可以提供映射xml文件(或使用流畅的NHibernate映射类),在Active Record中使用约定超过配置(使用属性来定义自然不适合的任何列和设置).城堡活动记录仍然在后台使用NHibernate.
一个OR / M不一定是“一个真正的方式”去.这取决于您的环境,您的开发人员和您的团队的应用程序.
您可能还想查看SubSonic.对于活跃的记录来说,这是非常好的,但它不适用于您希望将焦点集中在您的域上的项目.根据项目,我通常使用NHibernate(具有Castle Active Record)或Subsonic