- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 ORM 工具解决问题,并将其缩小到两个候选对象。
nHibernate 或 LLBLGen Pro
请你们给我使用这两种工具的利弊,特别是如果你有这两种工具的经验。我对任何其他工具并不真正感兴趣,但我想要一些提醒,以便我可以决定花时间学习哪个工具......
我已经知道一个是免费的,一个不是,我也知道 nHibernate 可能需要一些学习......
非常感谢,理查德
最佳答案
我两个都用过。起初我被 nHibernate 卖了,即使我知道其他选择,也拒绝尝试其他任何东西。
我对 LLBLGen Pro 持怀疑态度,但很快就看到了它的优势。我并没有完全放弃 nHibernate。我将继续将 int 保留在我的“工具箱”中。我发现 LLBLGen 在某些情况下很有用,尤其是在与已经存在的数据库交互时,您无法重新设计它。从数据库生成我的 LLBLGen 实体对象需要不到一个小时(当然取决于数据库的大小),而不是必须使用 nHibernate 手动编码所有这些,并进行映射。 nHibernate 缺少一个很好的图形界面来创建映射。当数据库包含数千个您可能需要在应用程序中访问的表时,这一事实变得更加重要。
尽管 LLBLGen 更像是一个数据访问层生成器(我通常不是 DAL 生成器的粉丝),但它具有“真正的 ORM”工具所具有的许多功能。在我看来,它具有两全其美的优点。一旦您开始使用它,您就会开始意识到它非常灵活和可扩展。我非常喜欢的一个部分是我可以为生成的实体对象创建部分类,我可以在其中编写业务逻辑以及验证。
代码生成是模板化的,因此您可以完全控制它生成的代码。使用 nHibernate,我发现自己一遍又一遍地编写一些相同类型的代码。使用 LLBLGen,我可以生成它并更快地关注业务逻辑和问题。
对于刚开始使用 ORM 类型工具的人,我真的建议从 LLBLGen 开始,因为 nHibernate 可能会让人不知所措。最后,您将获得相同的结果(或多或少)。
编辑 #1: LLBLGen 现在也 100% 支持 LINQ。 (因此,如果您因此喜欢 LINQ to SQL)进一步 LLBLGen 可以支持许多数据库,其中 LINQ to SQL 仅适用于 Microsoft SQL 数据库。
编辑 #2:
According to Graviton您可以使用 CodeSmith 为您为 nHibernate 生成一些代码。这真的很酷,但是对于 ORM 的新手,我仍然会推荐 LLBLGen。对我来说,这是添加更多依赖项,而 LLBLGen 将所有这些都包含在一个包中。就像我之前说的那样,学习曲线没有那么陡峭,您将获得相同的好处,如果您决定去那里,这也将帮助您轻松适应 nHibernate。
关于nHibernate 与 LLBLGen Pro,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1114215/
我有以下 LLBLGen 代码,可按类别检索文章。本质上,它是从文章表中选择,其中文章没有标记为删除并加入 ArticleTopicCategory 表以检索特定类别(其中 category = 's
我正在尝试使用 ORM 工具解决问题,并将其缩小到两个候选对象。 nHibernate 或 LLBLGen Pro 请你们给我使用这两种工具的利弊,特别是如果你有这两种工具的经验。我对任何其他工具并不
我似乎无法弄清楚如何在 Llblgen 2.6 自助服务模型中只选择不同的条目 我本质上想要这个查询。 select distinct City from peopleTable where *pre
我想知道在顶部 LLBLGen(适配器)上构建存储库是否是个好主意。我不想过度设计并再次重新发明轮子。 DataAccessAdapter 类可以是某种通用存储库。它具有您需要的所有 CRUD 方法。
我有以下代码,我可以通过在线查看一堆不同的资源来拼凑这些代码,但是下面实际上在底线上抛出了空引用异常。 GroupAgentEntity agent = new GroupAgentEntity();
我正在尝试连接来自两个不同目录的两个表,但无法开始工作。 我知道我必须对 CatalogNameOVerwriteHashtable 做些什么,但显然我做错了什么。 文档链接 ( http://www
我有以下返回我想要的结果类型的 Sql 查询: SELECT b.ID, a.Name, b.Col2, b.COl3 FROM Table1 a LEFT OUTER JOIN Table2 b o
我有一些代码能够检索包含特定关系的所有实体,如下所示: var bucket = new RelationPredicateBucket(); bucket.Relat
你怎么能模拟 LLBLGen?我看到有一个 ILinqMetaData 接口(interface),但它没有提供任何有用的方法来模拟。我假设您希望对 ILinqMetaData 接口(interfac
llblgen 和 nHibernate 之间的主要区别是什么? 最佳答案 LLBLGen 是一款精致的表面硬化工具,可生成最终可扩展的代码。客户服务是首屈一指的,并且错误是由业内最优秀的人才之一发现
我们在 contains LINQ 表达式中使用超过 2100 个元素时遇到问题,因此我重写了查询以将之前在 contains 比较中使用的值插入到 IEnumerable 类型的 EnquiryID
我们需要生成在编码(设计时)期间 100% 未知的 LINQ 查询。这是因为逻辑在我们的框架中可用,它与任何数据项目 100% 分离。对于数据,我们使用 LLBLGen 生成的数据访问代码。 通常通过
我继承了一个使用 LLBLGen Pro 作为 DB 层的项目。 DB模型要求当一个条目被删除时有一个标志(DeletedDate设置为当前时间)。最后一个程序员忽略了这个要求,并在整个应用程序中使用
我已经在互联网上搜索了所有关于 LLBLGen Pro 的性能信息。没有找到。只是想知道与 Nhibernate 相比 LLBLGen Pro 的性能如何。谢谢 最佳答案 如果没有上下文,您的问题基本
我继承了一个使用 llblgen 2.6 的应用程序。我有一个具有 AppointmentType 属性(n:1 关系)的 PersonAppointmentType 实体。现在我想根据 Appoin
我看到使用 llblgen 管理事务有两个主要选项。 方法一: using(DataAccessAdapter adapter = new DataAccessAdapter()) { ada
据我了解,LLBLGen Pro 无法在其自己的实体上生成 POCO(请参见此处:http://www.llblgen.com/Pages/featuresLLBLGenPro.aspx)。 有没有人
我想使用 LLBLGen 进行向上合并,而无需先获取然后保存实体。 我已经发现无需先获取实体即可更新的可能性,但我必须知道它已经存在。 更新条目的频率与插入新条目的频率差不多。 是否可以一步完成? 一
首先 - 我对 EF4 的工作方式很满意。我现在主要关心的是当我拥有超过 100 张 table 时的扩展能力。理想情况下,模式需要保存在相同的数据上下文中。如果我必须将其分解为主题领域,那将不是很好
有人知道使用 ASP.NET MVC 和 LLBLGEN(自助服务或适配器)的最佳实践或示例项目吗?可能类似于 S#arp 架构。 我是 MVC 新手,只能使用 LLBLGEN。 最佳答案 请参阅我们
我是一名优秀的程序员,十分优秀!