С OrmLite, как я могу присоединиться к таблице по нескольким столбцам?
У меня есть Notes
таблица, которая может содержать данные для QutoeHeader
или OrderHeader
, поэтому я попытался присоединиться и использовать SelectMulti()
как это:
var userSpecificQuery =
_db
.From<Customer>()
.Where(x => x.SalesRepresentativeId == userId)
.LeftJoin<Customer, QuoteHeader>((c, q) => c.Id == q.CustomerId)
.LeftJoin<Customer, OrderHeader>((c, o) => c.Id == o.CustomerId)
.LeftJoin<OrderHeader, QuoteHeader, Notes>((oh,qh, n) => oh.Id == n.OrderId || qh.Id == n.QuoteId)
;
var userSpecificRecords =
_db.SelectMulti<Customer, QuoteHeader, OrderHeader, Notes>(userSpecificQuery);
Но я получаю ошибку:
имя таблицы "quote_header" указано более одного раза
Я хочу присоединиться ко всей записи которые соответствуют или OrderId или QuoteId. Я пробовал несколько разных способов и получаю ту же ошибку. Возможно ли это?
edit:
Вот модель примечания
public class Notes : BaseModel
{
[AutoIncrement]
public long Id { get; set; }
[ForeignKey(typeof(QuoteHeader))]
public long? QuoteId { get; set; }
[ForeignKey(typeof(OrderHeader))]
public long? OrderId { get; set; }
public string NoteText { get; set; }
}