这个答案说 Linq针对的是一组与NHibernate,Castle等略有不同的开发人员.
作为C#的新手,永远不要涉及它周围的所有数据库内容:
还有其他专业,因为缺乏更好的术语,SQL包装器比NHibernate,Castle,Linq?
它们之间有什么区别?
他们针对什么样的开发者或开发?
-亚当
当你说Castle我认为你的意思是Castle Active Record?
不同之处在于NHibernate是一个OR/M,面向那些想要专注于域而不是数据库的开发人员.使用linq to sql,您的数据库是预先存在的,并且您是关系,并且一些编程将由您的数据库定义方式驱动.
现在介于NHibernate和Castle ActiveRecord之间 - 它们的相似之处在于你从域中驱动你的应用程序设计但是你使用NHibernate提供映射xml文件(或者用流畅的NHibernate映射类),在Active Record中你使用约定优于配置(使用属性定义任何不适合的列和设置).Castle Active记录仍然在后台使用NHibernate.
一个OR/M不一定是"一种真正的方式".这取决于您的环境,您的开发人员和您的团队的应用程序.
您可能还想查看SubSonic.它对于活动记录非常有用,但它不适用于您希望主要关注域的项目.根据项目的不同,我通常使用NHibernate(使用Castle Active Record)或Subsonic