多対多リレーションシップを持つPersonクラスとAddressクラスをマップしようとしています。私はアドレスコレクションをIDictionaryとしてAddressプロパティの型をキーとしてマップしたいと思います。この関係はPerson側からのみマップされます。多対多リレーションシップをIDictionaryとしてマッピングする
public class Person
{
public IDictionary<int, Address> Addresses { get; set; }
}
public class Address
{
public int Type { get; set; }
}
私が使用していますマッピングです:問題は、発行されたSQLがあるということである
HasManyToMany<Address>(x => x.Addresses).Table("PersonAddress")
.ParentKeyColumn("PersonId").ChildKeyColumn("AddressId")
.AsMap(x => x.Type);
:
SELECT addressesd0_.PersonId as PersonId1_,
addressesd0_.AddressId as AddressId1_,
addressesd0_.Type as Type1_,
address1_.AddressId as AddressId5_0_
-- etc.
FROM dbo.PersonAddress addressesd0_
left outer join dbo.Address address1_
on addressesd0_.AddressId = address1_.AddressId
WHERE addressesd0_.PersonId = 420893
それからタイプを選択しようとしています多対多の参加テーブルは存在しません。私は、成功せずにマッピングのいくつかのバリエーションを試しました。
どうすればマップできますか?
これは残念です。とにかく私はあなたが提案したものに似た何かをやってしまいました。 –