2016-01-22 62 views
1

我是新開發的UWA。我正在嘗試開發一個存儲本地數據庫信息的應用程序。通用Windows應用程序10 - EF7 SQLite一對多關係

我可以存儲和獲取信息沒有問題,但我找不到如何處理關係。

我:

public class ToDoItem 
{ 
    public int ToDoItemId 
    { 
     get; set; 
    } 

    public int ToDoItemCategoryId 
    { 
     get; set; 
    } 

    public virtual ToDoItemCategory ToDoItemCategory 
    { 
     get; set; 
    } 

    [Required] 
    public string Description 
    { 
     get; set; 
    } 
} 

和:

public class ToDoItemCategory 
{ 
    public int ToDoItemCategoryId 
    { 
     get; set; 
    } 

    public virtual ICollection<ToDoItem> ToDoItems 
    { 
     get; set; 
    } 

    [Required] 
    public string Name 
    { 
     get; set; 
    } 
} 

而且,我保存的信息是這樣的:

 using (var db = new DatabaseContext()) 
     { 
       var cat = db.ToDoItemCategories.Single(m => m.ToDoItemCategoryId == SelectedCategory.ToDoItemCategoryId); 
       ToDoItem model = new ToDoItem() { Description = description, ToDoItemCategory = cat }; 
       db.ToDoItems.Add(model); 
       db.SaveChanges(); 
     } 

但ToDoItems沒有得到保存到ToDoItemCategory ToDoItems列表。此外,ToDoItemId正在自動生成負ID,我不明白爲什麼。

我也試着與此類似:

using (var db = new DatabaseContext()) 
    { 
       var cat = db.ToDoItemCategories.Single(m => m.ToDoItemCategoryId == SelectedCategory.ToDoItemCategoryId); 
       ToDoItem model = new ToDoItem() { Description = description, ToDoItemCategory = cat }; 
       db.ToDoItems.Add(model); 
       cat.ToDoItems.Add(model); 
       db.SaveChanges(); 
    } 

,但沒有運氣。我在這裏做錯了什麼?

+0

您是否認爲:https://ef.readthedocs.org/zh-CN/latest/modeling/relationships.html? –

+0

謝謝,我一直在尋找,並沒有找到那一個。我會檢查並確定它是否解決了我的問題。 –

+0

我已經檢查過,並且我正在做所有事情,但是ToDoItems似乎沒有保存在類別中。 –

回答

1

經過多次測試和搜索,我找到了解決這個問題的辦法。

Categories = Context.ToDoItemCategories.Where(predicate).Include(m => m.ToDoItems).ToList(); 

顯然,導航性能只得到加載後,包含。這樣做一切正常。

相關問題