Я пытаюсь использовать PetaPoco для объединения более четырех таблиц и заполнения объекта типа A пятью членами типа B (очень похоже на этот вопрос: https) //stackoverflow.com/a/11275334/296296). Судя по тому, что я прочитал, можно было бы использовать этот синтаксис:
Код: Выделить всё
var result = db.Query(new System.Type[] { typeof(Investment), typeof(Person), typeof(Person), typeof(Person), typeof(Person), typeof(Person) }, null, sql, null).FirstOrDefault();
Код: Выделить всё
SELECT Investment.*, p1.*, p2.*, p3.*, p4.*, p5.* FROM Investment
INNER JOIN People p1 ON Investment.OwnerID = p1.Id
INNER JOIN People p2 ON Investment.ITOwnerID = p2.Id
INNER JOIN People p3 ON Investment.InformationOwnerId = p3.Id
INNER JOIN People p4 ON Investment.MaintenanceLeaderId = p4.Id
INNER JOIN People p5 ON Investment.MaintenanceLeaderITId = p5.Id
WHERE (Investment.Id = @0)
Невозможно автоматически присоединиться к человеку, поскольку у инвестиций более одного свойство типа Person
Кто-нибудь сталкивался с такой же проблемой или мог чем-то помочь?
Справочная информация:
У меня есть следующее (упрощенные) таблицы базы данных:
Код: Выделить всё
Investment
--------------
Id
Name
OwnerId
ITOwnerId
InformationOwnerId
MaintenanceLeaderId
MaintenanceLeaderITId
People
--------------
Id
Name
Код: Выделить всё
Public class Investment {
public int Id
public string Name
public Person Owner
public Person ITOwner
public Person InformationOwner
public Person MaintenanceLeader
public Person MaintenanceLeaderIT
}
Public class Person {
public int Id
public string Name
}
Подробнее здесь: https://stackoverflow.com/questions/114 ... n-petapoco