c# - NHibernate、CaSTLe、Linq 之间的区别——它们针对的是谁?

标签 c# database linq nhibernate

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/

相关文章:

java - 插入期间的 Hibernate 性能优化

c# - 如何使用 LINQ 查询包含多个子表?

带有包含多个条件的 WHERE 子句的 LINQ 查询

PHP 文件返回正确的回显,但在数据库中写入错误的字符串

c# - 如何将字典拆分为 "n"部分

c# - 创建 PDF 的最佳 C# API

c# - 如何获取 Channel<T> 中的元素数量?

c# - MSVC++ rand() 与 C# System.Random 的关系

让我冲洗的 C# 线程模式

database - 查看/修改 SQL Server CE 2.0?