繁体   English   中英

如何在流畅的Nhibernate中将接口用作CompositeID的一部分

[英]How to use an Interface as part of a CompositeID in fluent Nhibernate

我在弄清楚如何在使用复合键的同时映射接口时遇到了麻烦。

我想做的是这样的:

interface Ifoo
{
  int someInt {get;}
  int id {get;}
}

class bar1: Ifoo
{
  int someInt {get; protected internal set;}
  int id {get; protected internal set;}
}

class bar2: Ifoo
{
  int someInt {get; protected internal set;}
  int id {get; protected internal set;}
}

class someOtherClass
{
  Ifoo myFoo {get; protected internal set;}
  int id {get; protected internal set;}
}

public class someOtherClassMap: ClassMap<someOtherClass>
{
  CompositeId()
    .KeyReference(x => x.myFoo, "fooID")
    .KeyProperty(x => x.id, "id");

  References(x => x.myFoo)
    .Class(typeof (foo1))
    .Class(typeof (foo2))
    .Column("fooID")
    .Not.Insert()
    .Not.Update();
}

引用可以正常工作,但是我无法使KeyReference正常工作,并且似乎没有可以像引用一样使用的“ .Class”。

我读:

流利的NHibernate,使用接口

使用Fluent NHibernate映射时对接口进行编程

这样就可以解决“引用”问题,但是我还没有找到解决KeyReference的方法。 有什么明显的我想念的东西吗,因为我已经搜索了一段时间了,到目前为止还找不到任何东西。

这也许有效

.KeyReference(x => x.myFoo, attr => attr.Column("fooID").EntityName("bar1"))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM