Fluent NHibernate - 仅映射程序集中的几个类

发布于 2024-08-29 14:38:12 字数 303 浏览 2 评论 0原文

我有一个实体项目,包含大约 30 个类,该项目在多个 Web 应用程序中使用。一个应用程序可能使用全部 30 个类,但另一个应用程序仅使用 3 个类。 所以我的问题是: 如何只添加唯一应用程序所需的类? 我的第一个想法是在 web.config 的应用程序设置中添加所需类的名称,例如:

<add key="MappingClasses" value="User,Application,News" />

然后在会话工厂的配置中进行拆分和循环。 但我真的很想听听您对此的意见! 实现这一目标的最佳方法是什么?

I have a entity project which holds about 30 classes and this project is used in several web applications. One application maybe uses all the 30 classes but another one only uses 3 classes.
So my question is:
How can I add just the classes that a uniqe application needs?
My first thought was to add the names of the needed classes in app settings in web.config like:

<add key="MappingClasses" value="User,Application,News" />

And then split and loop in the configuration of the session factory.
But I really would like your input on this!
What is the best approach to achieve this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

━╋う一瞬間旳綻放 2024-09-05 14:38:12

您可以告诉 AutoPersistenceModelGenerator 按某些条件过滤类。

现在

    /// <summary>
    /// Provides a filter for only including types which inherit from the IEntityWithTypedId interface.
    /// </summary>
    private bool GetAutoMappingFilter(Type t)
    {
        return t.GetInterfaces().Any(x =>
                                     x.IsGenericType && x.GetGenericTypeDefinition() == typeof(IEntityWithTypedId<>));
    }

您可以读取配置文件并使用反射来创建过滤条件。

You can tell to your AutoPersistenceModelGenerator to Filter classes by some criteria.

e.q.

    /// <summary>
    /// Provides a filter for only including types which inherit from the IEntityWithTypedId interface.
    /// </summary>
    private bool GetAutoMappingFilter(Type t)
    {
        return t.GetInterfaces().Any(x =>
                                     x.IsGenericType && x.GetGenericTypeDefinition() == typeof(IEntityWithTypedId<>));
    }

So now you could read your config file and using reflection to create your filter criteria.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文