当前位置: 首页 > 面试题库 >

流利的NHibernate:如何在多对多联接表上创建聚簇索引?

越扬
2023-03-14
问题内容

为了在SQL Azure上使用Fluent NHibernate映射,我需要在每个表上都有一个聚集索引。Fluent
NHibernate为多对多联接创建的默认堆表显然不这样做,因为它们没有主键。

我希望能够告诉关系的一方为其连接表创建聚簇索引,但是我不确定如何。这是我的映射的样子:

 public class UserMap : ClassMap<User>{
    public UserMap()
    {
        Table("Users");
        Id(x => x.UserId).GeneratedBy.Identity().Column("UserId");
        Map(x => x.UserName).Unique().Not.Nullable().Length(DataConstants.UserNameLength).Column("UserName");
        Map(x => x.Email).Unique().Not.Nullable().Length(DataConstants.EmailAddressLength).Column("Email");
        Map(x => x.Password).Not.Nullable().Length(DataConstants.PasswordHashLength).Column("Password");
        HasMany(x => x.Clicks).Cascade.AllDeleteOrphan();
        HasManyToMany(x => x.Roles).Cascade.SaveUpdate().Table("UsersInRole").ParentKeyColumn("UserId").
            ChildKeyColumn("RoleId");

    }
}

如果您需要更多信息,请告诉我!


问题答案:

我不知道Fluent是否直接支持它(如果不支持,只需包含xml),但是您可以使用辅助数据库对象来实现

<nhibernate-mapping>
  <database-object>
    <create>create clustered index ix on UsersInRole(UserId, RoleId)</create>
    <drop>drop index UsersInRole.ix</drop>
  </database-object>
</nhibernate-mapping>


 类似资料:
  • 问题内容: 在用户属于特定组织的情况下,我们具有以下实体关系。我的查询看起来像是“从org =:org用户选择”或“从org =:org用户输入和type =:type选择” 我在User类上有单独的索引。由于外键元素上的索引,因此第一个查询会很好。第二个查询是否对组织和类型列要求多列索引。如果是这样,我应该如何注释以创建一个这样的索引。 问题答案: 使用hibernate特定注释可以做到这一点。

  • 问题内容: 我有三个表: 我正在尝试创建一个视图,以便获得table的所有字段,where中的项目计数以及where中所有标签的文本数组。如果我们有: 结果应返回: 这是我到目前为止所拥有的: 这些是我得到的结果(请注意,这是不正确的): 将始终是标签的数量,而不是不同的计数值。我尝试重新排序/修改和子句,它们返回不同的结果,但不是我想要的结果。我认为我在使用该功能时遇到了麻烦,但是我不确定是否是

  • 问题内容: 我使用Hibernate批注具有如下关系,这是我尝试过的: 这样的事情在ManyToOne上效果很好,如下所示: 我想确保外键在PostgreSQL上被索引,并且架构在MySQL上看起来相似,因此@ForeignKey和@Index具有相同的名称(MySQL始终创建与FK具有相同名称的索引)。 我无法在反面创建索引,因为FileSystemLocation不了解这种关系。因此,Join

  • 问题内容: 我需要多对多的hibernate mapping,需要3个联接。我试图找出没有像这样的中间实体的解决方案。 我的讲师和课程表之间的数据库之间存在多对多关系。一门课程可以由多位讲师授课,而一位讲师可以提供多门课程。 我有预先存储的课程。但是,我需要将课程分配给讲师。分配课程时,我还会存储该课程的容量。 我的数据库图: 我使用hibernate and spring。当课程分配任何讲师时,

  • 本文向大家介绍nhibernate 流利的NHibernate映射,包括了nhibernate 流利的NHibernate映射的使用技巧和注意事项,需要的朋友参考一下 示例 该Fluent NHibernate是一个库,以帮助您在使用C#代码,而不是XML映射的实体映射。Fluent NHibernate使用,fluent pattern并且它基于约定来创建映射,它为Visual Studio工具

  • 主要内容:一、索引的种类及常用术语,二、聚簇索引,三、InnoDB索引的数据结构,四、源码,五、总结一、索引的种类及常用术语 索引种类有很多种,象前面提到的聚集索引和非聚集索引(聚集和聚簇等同),还有多个条目生成的联合索引,非聚集索引又可以叫做二级索引,辅助索引(其它还有什么普通索引,唯一索引,全文索引都可以通过看具体的上下文场景来明白怎么回事),还有一些数据库默认在主键上建立主键索引,一般来说,一个数据库只有一个聚集索引,一个主键索引。 本篇主要分析取簇索引,一般来说,索引的深度不会超过4层,