2016-07-29 1 views
0

die Dokumentation Unter Berücksichtigung, können Sie Fremdschlüsselbeziehungen in Ihrem pocos wie das gegebenen Beispiel definieren:Wie kann ich Objekte, die auf den Primärschlüssel meiner POCO-Klasse verweisen, in einer 1: Viele-Beziehung begierig laden? hier

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

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

Das ist in Ordnung, da es eine 1 ist: hier 1-Beziehung. Ich habe jedoch eine 1: Viele-Beziehung, die ich definieren muss, und die Beziehung ist tatsächlich im untergeordneten Objekt definiert, nicht im übergeordneten Objekt. So

, lassen Sie uns sagen, ich habe diese 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; } 
} 

Wie kann ich ORMLite eifrig Last die CustomerAddresses Eigenschaft im Customer POCO?

Antwort

1

Sie müssen Db.LoadSelect<Customer>() Methode aufrufen und Ihre Kunden werden CustomerAddresses abrufen (Sie müssen [Reference] Attribut über Ihre CustomerAddresses Eigenschaft hinzufügen).

+0

LoadSelect scheint eine Sammlung zurückzugeben. Wenn ich eine Repomethode schreibe, die einen Ausdruck akzeptiert und nur ein Objekt zurückgibt, und ein anderer Entwickler einen Ausdruck bereitstellt, der mehrere (Tausende) Objekte zurückgibt, versucht die Datenbank, alle diese Übereinstimmungen auszuwählen. Gibt es eine andere Methode, die ich verwenden kann, die geladen wird, aber die Datenbank wird nur 1 Ergebnis zurückgeben? Im Wesentlichen möchte ich 'db.Single', aber mit eifrigem Laden. – Ellesedil

+0

Was ist mit Db.LoadSingleById (request.CustomerId)? – labilbe

+0

Ich kann nicht unbedingt davon ausgehen, dass ich per ID abfragen werde. Ich habe jedoch 'db.LoadReferences' entdeckt, was mir erlaubt,' db.Single' zu ​​verwenden und einen Ausdruck zu übergeben. Die resultierenden SQL-Abfragen, die von ORMLite generiert werden, sind im Wesentlichen identisch. – Ellesedil

Verwandte Themen