2つのテーブルがあります。CustomerID、InvoiceDate、Value、InvoiceTypeID(CustomerIDとInvoiceDateは複合キーを構成します)列を持つInvoiceと、InvoiceTypeID列とInvoiceTypeName列を持つInvoiceType。
次のようなオブジェクトを作成できることはわかっています。
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
しかし、データを取得するために2つのselectクエリを実行するのではなく、1つを使用したいと思います。また、単純なルックアップリストに子オブジェクトを使用することは避けたいと思います。したがって、私のオブジェクトは次のようになります。
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
私の質問は、このためのマッピングをどのように作成するかです。
joinを使用してみましたが、CustomerIDとInvoiceDateを使用して参加しようとしましたが、明らかなものがありませんか?
ありがとう