0
ダッパーでマルチマッピングを行うのが苦労しています。ここでダッパーマルチマッピングエラー
は私のコードです:SSMSで実行した場合
var contactDictionary = new Dictionary<Guid, Contact>();
IEnumerable<Contact> contacts = connection.Query<Contact, Activity, Contact>(
@"SELECT ContactId, Title, FirstName, Surname,
AddressType.Type AS AddressType, Address.AddressLine1, Address.AddressLine2, Address.AddressLine3, Address.Town, Address.County, Address.Country, Address.Postcode,
EmailAddressType.Type AS EmailAddressType, EmailAddress.Email AS EmailAddress,
PhoneNumberType.Type As PhoneNumberType, PhoneNumber.Number AS PhoneNumber,
Direction.Type AS Direction, Activity.Summary, Activity.DateCompleted
FROM Contact
LEFT JOIN Address ON Contact.ContactPK = Address.ContactPK
LEFT JOIN AddressType ON Address.AddressTypePK = AddressType.AddressTypePK
LEFT JOIN EmailAddress ON Contact.ContactPK = EmailAddress.ContactPK
LEFT JOIN EmailAddressType ON EmailAddress.EmailAddressTypePK = EmailAddressType.EmailAddressTypePK
LEFT JOIN PhoneNumber ON Contact.ContactPK = PhoneNumber.ContactPK
LEFT JOIN PhoneNumberType ON PhoneNumber.PhoneNumberTypePK = PhoneNumberType.PhoneNumberTypePK
LEFT JOIN Activity ON Contact.ContactPK = Activity.ContactPK
LEFT JOIN Direction ON Activity.DirectionPK = Direction.DirectionPK
WHERE Contact.ContactId = @ContactId
AND Address.IsPrimary = 1 AND EmailAddress.IsPrimary = 1 AND PhoneNumber.IsPrimary = 1",
param:new { ContactId = contactId },
map:(c, a) =>
{
Contact contactEntry;
if (!contactDictionary.TryGetValue(c.ContactId, out contactEntry))
{
contactEntry = c;
contactEntry.Activities = new List<Activity>();
contactDictionary.Add(contactEntry.ContactId, contactEntry);
}
contactEntry.Activities.Add(a);
return contactEntry;
},
splitOn: "ContactId")
.Distinct()
.ToList();
ここでコードが実行されるときに、私は取得していますエラーです: マルチを使用している場合は、 - マッピングAPIを使用すると、ID以外のキーがある場合、splitOnパラメータを設定できます パラメータ名:splitOn
私はsplitOnパラメータを指定したと思って本当に混乱していますか?
ご協力いただければ幸いです。
splitOnパラメータは、両方のエンティティ(連絡先とアクティビティ)からプロパティを分離する方法をdapperに示す必要があります(オーダーされていると仮定して)アクティビティの最初のプロパティに設定する必要があります。 –
splitOnを「Direction」に変更していただきありがとうございました –