2つの異なるクラスを同じビューにマップし、重複したマッピングが存在するというエラーを受け取る必要があります。これはNHibernateで可能ですか?そうでない場合は、どのように私はこのマッピングの問題を解決することができるかについて指示を与えることができます。NHibernate:複数のクラスを同じビューにマッピングする
石で設定されたビューで作業します。 1つのビューは、2つのクラスに分割するために必要なデータを戻します。以下のようなビューが見えます:クラスはゲームのリストで、「プレーヤー」である必要があり
vw_player_points
----------------
Id
GameID
PlayerID
Points
select gameid from vw_player_points where playerid = <PlayerID>
を果たし、各「ゲーム」はプレイヤーとそのポイントのリストを必要とします。
select playerid, points from vw_player_points where gameid = <GameID>
私はテーブルごとの具体的なクラスの継承が二度同じビューにマッピングとしてaswell試してみたが、何の喜びを持っていない:(
1つのxmlスニペットに入れた '粗い'マッピングを以下に示します。
<class name="I[Entity]" abstract="true">
<union-subclass name="[Entity]">
...
</union-subclass>
</class>
:私もそれは形の抽象/サブクラスのマッピングを使用する場合、単一のビューに複数のクラスをマッピングすることは不可能と思われる
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" assembly="DomainModel" namespace="Test">
<class name="IPlayer" abstract="true">
<id name="Id" column="id">
<generator class="assigned"/>
</id>
<union-subclass name="Player" table="vw_player">
<bag name="Games">
<key column="player_id"/>
<one-to-many class="Test.IGame" not-found="ignore"/>
</bag>
</union-subclass>
</class>
<class name="IGame" abstract="true">
<id name="Id" column="game_id">
<generator class="assigned"/>
</id>
<union-subclass name="Game" table="vw_player_points">
<bag name="Points">
<key column="game_id"/>
<one-to-many class="Test.IPlayerPoints" not-found="ignore"/>
</bag>
</union-subclass>
</class>
<class name="IPlayerPoints" abstract="true">
<id name="Id" column="id">
<generator class="assigned"/>
</id>
<union-subclass name="PlayerPoints" table="vw_player_points">
<property not-null="false" name="PlayerId" column="player_id"/>
<property not-null="false" name="Points" column="points"/>
</union-subclass>
</class>
</hibernate-mapping>
各クラスのマッピングを投稿できますか? –
マッピングが投稿されました:) – theGecko
これに関するアイデアですか? – theGecko