代码之家  ›  专栏  ›  技术社区  ›  Nir

使用NHibernate的用户定义字段

  •  0
  • Nir  · 技术社区  · 17 年前

    我需要添加一个用户定义的字段功能到asp。net c#应用程序,使用NHibernate。

    一个重要的约束是,用户不能更改数据库模式——也就是说,我可以添加支持此功能所需的任何字段/表,但当用户添加或删除字段时,他不能更改数据库模式。

    编辑:我还必须根据用户定义字段的值进行排序和过滤。

    我知道如何在c#/SQL中使用键/值表,但我不知道如何使用NHibrenate(包括按用户定义的字段进行过滤和排序)

    1 回复  |  直到 17 年前
        1
  •  4
  •   lotsoffreetime    17 年前

    听起来您只是想添加一个名称/值属性表。

    一个表定义名称(例如ID、FIELDNAME、DESCRIPTION),另一个表定义值(例如ID、name\u FK、OBJECT\u FK、value)。

    然后,您的视图可以查询针对对象\u FK设置键的值表,并使用名称\u FK来引用属性名称。

    IList<MyProp> props = session
      .CreateCriteria(typeof(MyProp))
      .Add(Expression.Eq("ObjectName", "Widget"))
      .Add(Expression.Eq("Name", "Size"))
      .List<MyProp>();
    
    推荐文章