数据源的应用程序菜单存储在本地数据库或文件

本文关键字:数据库 文件 应用程序 菜单 存储 数据源 | 更新日期: 2023-09-27 18:14:19

我对我的UWP应用程序(MVVM)的结构有疑问。基本上我有这三种型号。

public class Country
{
    public int Id { get; set; }
    public string Name { get; set; }
    public List<City> Cities { get; set; }
    ...
}
public class City
{
    public int Id { get; set; }
    public string Name { get; set; }
    ...
}
public class Item
{
    public int Id { get; set; }
    public Country Co { get; set; }
    public City Ci { get; set; }
    ...
}

我使用Country和City类在应用程序第一次启动时构建分层菜单(ListView),因此我用预定义的值解析XML文件。菜单控件的ItemsSourceObservableCollection

public ObservableCollection<Country> Countries { get; set; }

应用程序应该在本地SQLite数据库中存储类Item的实例,这导致了我的问题。在本地数据库中存储应用程序主菜单的数据源是一个好主意吗?我更喜欢数据库而不是文件,因为它更容易添加新条目(国家)。

我使用来自NuGetSQLiteNetExtensions包,因此我可以映射数据库中的关系。哪些关系(1:1,1:1,…)适合上述模型的数据结构?也许你可以给我一个提示,我不是数据建模方面的专家。

谢谢!

数据源的应用程序菜单存储在本地数据库或文件

这些变化是从哪里开始的?在此基础上,决定在哪里存储数据。

我假设用户正在添加Item的实例,并且您将它们存储到数据库中,数据库将位于本地存储中。

CountryCity项:

  • 如果更改也是由用户完成的,将它们存储在数据库中是一个好主意。
  • 如果更改与应用程序一起分发,XML文件是更好的选择。或者至少是一个不同的数据库,否则您将覆盖用户数据或必须在应用程序启动时将记录添加到现有数据库。

就关系而言:

[OneToMany]
public List<City> Cities { get; set; }
[ManyToOne]
public Country Co { get; set; }
[ManyToOne]
public City Ci { get; set; }