簡體   English   中英

Universal Windows App 10-EF7 SQLite一對多關系

[英]Universal Windows App 10 - EF7 SQLite One-to-many relationship

我是開發UWA的新手。 我正在嘗試開發一個將信息存儲在本地數據庫中的應用程序。

我可以毫無問題地存儲和獲取信息,但是我找不到如何處理關系的方法。

我有:

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();
    }

但是沒有運氣。 我在這里做錯了什么?

經過大量測試和搜索,我找到了解決此問題的方法。

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

顯然,導航屬性僅在包含之后加載。 這樣做,一切正常。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM