我对我的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文件。菜单控件的ItemsSource
为ObservableCollection
public ObservableCollection<Country> Countries { get; set; }
应用程序应该将类Item
的实例存储在本地SQLite
数据库中,这导致了我的问题。将应用程序主菜单的数据源存储在本地数据库中是一个好主意吗?我更喜欢数据库而不是文件,因为它更容易添加新条目(国家/地区)。
我使用SQLiteNetExtensions
中的NuGet
包,因此我可以在数据库中映射关系。哪种关系(1:1,1:m,...)符合上述模型的数据结构?也许你可以给我一个提示,我不是数据建模方面的专家。
谢谢!
答案 0 :(得分:1)
变化源自何处?根据决定,存储数据的位置。
我认为用户正在添加Item
的实例,并且您将它们存储到数据库中,您将在本地存储中存储它们。
对于Country
和City
项:
就关系而言:
[OneToMany]
public List<City> Cities { get; set; }
[ManyToOne]
public Country Co { get; set; }
[ManyToOne]
public City Ci { get; set; }