2014-12-22 57 views
0

我有兩個(簡體)班ORMLite(使用SQLite的供應商,但不應該的問題):是否有內置的方式來檢索父對象?

public class ParentClass 
{ 
    [AutoIncrement] 
    public long Id { get; set; } 

    [Required] 
    [Index(Unique = true)] 
    public String Name { get; set; } 

    [Reference] 
    public List<ChildClass> Children { get; set; } 
} 

public class ChildClass 
{ 
    [AutoIncrement] 
    public long Id { get; set; } 

    [Required] 
    [Index(Unique = true)] 
    public String Name { get; set; } 

    [Required] 
    public long ParentId { get; set; } 
} 

當我有一個家長,我可以簡單地做

var firstChild = parent.Children.First(); 

或類似直接檢索子類。然而,當我需要做輪用另一種方式,我需要做的

var parent = db.Single<ParentClass>(new { Id = child.ParentId }); 

有沒有一種方法來設置數據類,所以我可以根本就以下?

var parent = child.Parent; 

一個最佳的解決方案將是其中母公司將只從數據庫中檢索一次(注:我在單用戶環境,有沒有人/沒有外部修改我的數據庫)。

+0

請參閱[「應該在其標題中包含」標籤?「](http://meta.stackexchange.com/questions/19190/should-questions-include-tags-in-their-titles),其中共識是「不,他們不應該」! –

回答

1

你應該有這樣的特性:在ChildClass

[Reference] 
public ParentClass Parent { get; set; } 

,然後你需要確保該財產是正確填寫起來。你在數據庫中的子表上有ParentId屬性,所以這應該沒有任何問題來通過它的ID獲取父 - 我想。

相關問題