【问题标题】:Nhibernate Database First休眠数据库优先
【发布时间】:2016-08-02 10:36:02
【问题描述】:

一开始我会告诉你,我对 Nhibernate 完全陌生,但我想知道如何将 Nhibernate 用于已经制作的数据库。数据库本身相当大(我在 CPU 上用来测试的部分是 1gb)。我不是通过 xml 映射的忠实粉丝。我认为这个工具可能对我有帮助 (https://www.devart.com/entitydeveloper/),但它的性能并不令人满意。那么我是否应该使用代码,然后将其与 XML 进行映射,或者我可以使用哪些其他可能的方式?

【问题讨论】:

    标签: c# nhibernate


    【解决方案1】:

    我知道有两种选择:

    • Fluent NHibernate:流畅、无 XML、编译安全、自动化、基于约定的 NHibernate 映射
    • NHibernate.Mapping.Attributes:使用 NHibernate.Mapping.Attributes,您可以使用 .NET 属性来装饰您的实体,这些属性将用于生成映射信息

    【讨论】:

    • 除了以上两个插件之外,NHibernate 还内置了对“Mapping-By-Code”的支持。不需要 XML。
    • 我通过代码进行第二次映射。它与 xml 一样灵活,但意味着更快,因为在会话工厂启动时没有要解析的 xml 映射。如果我没记错的话,Fluent under the cover 会动态创建 xml,所以 sessionfactory 启动不会那么快。这里还有一个很好的通过代码和流利的映射资源notherdev.blogspot.com/2012/02/…
    【解决方案2】:

    除非您对NHibernate 有要求,否则我强烈推荐Dapper,尤其是在您关心性能的情况下。对于CRUD,您可以查看Dapper Contrib or Dapper Rainbow

    Dapper Rainbow vs Dapper Contrib

    Introduction to Dapper

    【讨论】:

    • Dapper ContribDapper Rainbow 可以从现有数据库生成模型吗?
    • Dapper 可能会更好,也可能不会——这实际上是基于意见的讨论,而不是 StackOverflow 问题的问题。但无论哪种方式,这个问题都是关于 NHibernate 的,所以这不是一个答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-11
    • 2012-06-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多