2016-07-29 3 views
0

は、ここにドキュメントを考えると、あなたは、与えられた例のように、あなたのPOCOSで外部キー関係を定義することができます:1の関係ここに:1がありますようPOCOクラスの主キーを参照しているオブジェクトを1:Many関係で読み込もうとするとどうなりますか?

public class Customer 
{ 
    [References(typeof(CustomerAddress))] 
    public int PrimaryAddressId { get; set; } 

    [Reference] 
    public CustomerAddress PrimaryAddress { get; set; } 
} 

これは、罰金です。しかし、私は1:たくさんの関係を定義する必要があり、その関係は実際には親オブジェクトではなく子オブジェクトで定義されます。

それでは、私はこれらのPOCOSを持っているとしましょう:

public class Customer 
{ 
    [PrimaryKey] 
    public int CustomerId { get; set; } 

    public List<CustomerAddress> CustomerAddresses { get; set; } 
} 

public class CustomerAddress 
{ 
    [PrimaryKey] 
    public int CustomerAddressId{ get; set; } 

    public int CustomerId { get; set; } 
} 

どのように私はORMLite熱心な負荷がCustomer POCOでCustomerAddresses財産持つことができますか?

答えて

1

Db.LoadSelect<Customer>()メソッドを呼び出す必要があり、得意先がCustomerAddressesを取得する必要があります(属性をCustomerAddressesプロパティの上に追加する必要があります)。

+0

LoadSelectがコレクションを返すようです。式を受け取り、ちょうど1つのオブジェクトを返すリポジトリメソッドを書いて、他の開発者が数千のオブジェクトを返す式を提供すると、データベースはそれらのすべてのものを選択しようとします。私はそれが熱心な負荷を使用することができる別の方法がありますが、データベースは1つの結果だけを返しますか?本質的に、私は 'db.Single'を望んでいますが、熱心な負荷をかけます。 – Ellesedil

+0

Db.LoadSingleByIdはどうですか?(request.CustomerId)? – labilbe

+0

IDで照会するとは必ずしも思えません。しかし、 'db.LoadReferences'を発見しました。これは' db.Single'を使用して式を渡すことができます。 ORMLiteによって生成された結果のSQLクエリは本質的に同じです。 – Ellesedil

関連する問題