如何覆盖NHibernate身份ID名称

尼尔特

我有以下课程;

public class Country
{
    public virtual int CountryId { get; set; }
    public virtual string Code { get; set; }
    public virtual string Name { get; set; }
    public virtual bool Preferred { get; set; }
    public virtual DateTime LastChanged { get; set; }
}

我已经使用Fluent NHibernate的自动映射功能将表与对象相关联。

public static class SessionFactoryBuilder
{
    public static ISessionFactory BuildSessionFactory()
    {
        return Fluently.Configure()                              
            .Database(MySQLConfiguration.Standard.ConnectionString(""))
            .Mappings(m => m.AutoMappings.Add(CreateMappings()))
            .BuildSessionFactory();
    }

    // Returns our mappings
    private static AutoPersistenceModel CreateMappings()
    {
        return AutoMap
            .Assembly(System.Reflection.Assembly.GetCallingAssembly())
            .Where(t => t.Namespace == "Escape.Data.Entities");
    }
}

我如何覆盖从Id到在类中定义的CountryId的表的身份ID。

拉迪姆·科勒

我们应该在这里使用约定。要更改默认的主键名称,我们可以使用

PrimaryKey.Name.Is(x => x.EntityType.Name + "Id")

列名称约定可能是这样的,让我们实现IIdConvention

public class MyIdColumnNameConvention : IIdConvention
{
    public void Apply(IIdentityInstance instance)
    {
        instance.Column(instance.EntityType.Name + "Id");
    }
}

并将其添加到配置

return AutoMap
        .AssemblyOf<Country>(t => t.Namespace == "Escape.Data.Entities")
        // use the convention
        .Conventions.Add(PrimaryKey.Name.Is(x => x.EntityType.Name + "Id"))
        .Conventions.AddFromAssemblyOf<MyIdColumnNameConvention >()

在这里查看更多:

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何覆盖选择下拉列表的名称和ID属性

来自分类Dev

如何覆盖SSH默认身份?

来自分类Dev

如何覆盖Razor的“名称” HtmlAttribute

来自分类Dev

如何覆盖API路由名称?

来自分类Dev

如何覆盖Razor的“名称” HtmlAttribute

来自分类Dev

如何使用Fluent NHibernate覆盖单个LINQ查询的延迟加载

来自分类Dev

如何在NHibernate中自动生成ID

来自分类Dev

NHibernate如何更新实体中新插入的ID?

来自分类Dev

在Grails(GORM)中,如何覆盖约束名称

来自分类Dev

如何覆盖定义类的名称空间?

来自分类Dev

如何最好地覆盖MVC 5中的身份验证?

来自分类Dev

如何使用自定义MembershipProvider覆盖身份?

来自分类Dev

如何从ID获取对象的名称

来自分类Dev

如何仅使用ID给用户身份?

来自分类Dev

如何在NHibernate中获取具有ID的商品列表

来自分类Dev

如何覆盖DHCP提供的名称服务器?

来自分类Dev

如何覆盖DHCP提供的名称服务器?

来自分类Dev

身份2如何允许重复的名称进行逻辑删除

来自分类Dev

如何获得以budo身份执行bash脚本的用户的名称?

来自分类Dev

如何阻止Debian覆盖/etc/resolv.conf并覆盖我的VPN的名称服务器?

来自分类Dev

NHibernate代理ID值

来自分类Dev

风味:覆盖包名称

来自分类Dev

如何在Docker覆盖网络中使用自定义名称作为容器的网络名称?

来自分类Dev

如何覆盖docker-compose项目名称和网络名称

来自分类Dev

与NHibernate映射时不能覆盖类

来自分类Dev

oracle代理身份验证和nhibernate

来自分类Dev

如何通过接口名称查找合同ID?

来自分类Dev

如何基于ID选择类别名称

来自分类Dev

如何从模块ID获取Moodle模块名称

Related 相关文章

热门标签

归档