流畅的自动映射覆盖单个属性

发布于 2024-11-05 07:03:48 字数 482 浏览 0 评论 0原文

我正在使用 Fluent Nhibernate 和 AutoMappings。它提供了通过以下方式覆盖任何映射属性的能力:

public class CommunityMap : IAutoMappingOverride<Community>
{
    public void Override(AutoMapping<Community> mapping)
    {
        mapping.Map(x => x.Description).Length(5000);
        mapping.Cache.ReadWrite();
    }
}

此类不仅更改 Description 列的 Length 属性,而且还更改映射中的列名称。 HasMany 等也是如此。例如,我想禁用特定集合的延迟加载,但保留自动映射设置的所有其他属性。 FNH 可以吗?

I'm using Fluent Nhibernate with AutoMappings. It provides ability to override any mapped property in following way:

public class CommunityMap : IAutoMappingOverride<Community>
{
    public void Override(AutoMapping<Community> mapping)
    {
        mapping.Map(x => x.Description).Length(5000);
        mapping.Cache.ReadWrite();
    }
}

This class changes not only Length property of Description column, but also it changes column name in mappings. The same goes to HasMany and others. For example I want to disable lazy loading for particular collection, but leave all other attributes as set by automappings. Is it possible with FNH?

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

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

发布评论

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

评论(1

晨与橙与城 2024-11-12 07:03:48

是的,这是可能的。

public class ContractMappingOverride : IAutoMappingOverride<Contract>
{
    public void Override(AutoMapping<Contract> mapping)
    {
        mapping.HasMany(x => x.Details).Access.CamelCaseField(Prefix.Underscore).Cascade.AllDeleteOrphan();
    }
}

我刚刚从我的生产代码中复制了它。

Yes, it's possible.

public class ContractMappingOverride : IAutoMappingOverride<Contract>
{
    public void Override(AutoMapping<Contract> mapping)
    {
        mapping.HasMany(x => x.Details).Access.CamelCaseField(Prefix.Underscore).Cascade.AllDeleteOrphan();
    }
}

I just copied that from my production code.

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