[英]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.