gpt4 book ai didi

c# - 通用Windows App 10-EF7 SQLite一对多关系

转载 作者:行者123 更新时间:2023-12-03 19:36:02 30 4
gpt4 key购买 nike

我是开发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();


显然,导航属性仅在“包含”之后加载。这样做,一切正常。

关于c# - 通用Windows App 10-EF7 SQLite一对多关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34947247/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com