У меня есть два стола. Счет-фактура со столбцами CustomerID, InvoiceDate, Value, InvoiceTypeID (CustomerID и InvoiceDate составляют составной ключ) и InvoiceType со столбцами InvoiceTypeID и InvoiceTypeName.
Я знаю, что могу создавать свои объекты, как:
public class Invoice
{
public virtual int CustomerID { get; set; }
public virtual DateTime InvoiceDate { get; set; }
public virtual decimal Value { get; set; }
public virtual InvoiceType InvoiceType { get; set; }
}
public class InvoiceType
{
public virtual InvoiceTypeID { get; set; }
public virtual InvoiceTypeName { get; set; }
}
Таким образом, сгенерированный sql будет выглядеть примерно так:
SELECT CustomerID, InvoiceDate, Value, InvoiceTypeID FROM Invoice WHERE CustomerID = x AND InvoiceDate = y
SELECT InvoiceTypeID, InvoiceTypeName FROM InvoiceType WHERE InvoiceTypeID = z
Но скорее, если бы два запроса на выбор выполнялись для извлечения данных, я бы предпочел один. Я также хотел бы избежать использования дочернего объекта для простых списков поиска. Так что мой объект будет выглядеть примерно так:
public class Invoice
{
public virtual int CustomerID { get; set; }
public virtual DateTime InvoiceDate { get; set; }
public virtual decimal Value { get; set; }
public virtual InvoiceTypeID { get; set; }
public virtual InvoiceTypeName { get; set; }
}
И мой sql будет выглядеть примерно так:
SELECT CustomerID, InvoiceDate, Value, InvoiceTypeID
FROM Invoice INNER JOIN InvoiceType ON Invoice.InvoiceTypeID = InvoiceType.InvoiceTypeID
WHERE CustomerID = x AND InvoiceDate = y
У меня вопрос, как мне создать сопоставление для этого?
Я пытался использовать соединение, но пытался объединиться с помощью CustomerID и InvoiceDate, я что-то упускаю из виду?
Спасибо