【问题标题】:Configure FluentNHibernate, FluentMappings.AddFromAssembly; meaning配置 FluentNHibernate、FluentMappings.AddFromAssembly;意义
【发布时间】:2011-01-27 10:14:16
【问题描述】:

线

    .Mappings(m => m.FluentMappings.AddFromAssemblyOf<Product>()

它有什么作用?它会在 Product 类的程序集中查找派生自 ClassMap 的任何类吗?或者背后的逻辑是什么?我可以在此处放置该程序集的任何随机类并期望它找到该程序集中的所有映射类吗?

    private static ISessionFactory CreateSessionFactory()
    { 
          return Fluently.Configure()
            .Database(MsSqlConfiguration.MsSql2008
            .ConnectionString(Properties.Settings.Default.FnhDbString)
            .Cache(c => c
                .UseQueryCache()).ShowSql())
            .Mappings(m => m.FluentMappings.AddFromAssemblyOf<Product>()
            .Conventions.Add(FluentNHibernate.Conventions.Helpers.DefaultLazy.Never()))
            .BuildSessionFactory();
    }

【问题讨论】:

    标签: c# .net nhibernate fluent-nhibernate nhibernate-mapping


    【解决方案1】:

    我一直认为当你使用AddFromAssemblyOf 时,fluent 会尝试映射程序集中的每个类。

    因此,您只需从包含您的 ClassMap 的程序集中添加一个类(任何一个)。

    来自fluent wiki的补充

    ..它然后添加任何流畅的映射 包含 YourEntity 的程序集

    【讨论】:

    • 您还可以在此之后将Where() 方法链接在一起,以指定类必须满足的一些条件。
    • 好的。所以我认为这意味着不是“每个类”,而是每个实现 ClassMap (?) 的类
    • 我不知道 Fluent-NHibernate 的内部结构,但我怀疑它会枚举所有类并只返回那些实现 ClassMap 的类。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-19
    • 1970-01-01
    • 1970-01-01
    • 2010-11-18
    • 2017-10-24
    相关资源
    最近更新 更多