簡體   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