我在UWP上使用LINQ to SQLite编写代码。
据我所知,模型是数据库中表行的模板。关于SQLite的文档几乎没有提到模型的限制,或者如何将模型转换为表行。示例代码通常只提供具有主要类型的简单案例。
我的问题是:
模型类成员使用属性进行修饰以指示键。
internal class Person
{
/// <summary>
/// Gets or sets the identifier.
/// </summary>
[PrimaryKey, AutoIncrement]
public int Id { get; set; }
....
}
这个属性是否必需?还有其他类似的技巧吗?
如果模型类和普通类之间存在任何一般差异,SQLite是否需要它或LINQ是否需要它?
复杂数据如何存储在数据库中,例如模型类中的List<>
。属性是作为方法还是作为字段处理,属性是否在表中使用了一列?
答案 0 :(得分:2)
这是他们网站的一个例子:
public class Stock
{
[PrimaryKey, AutoIncrement]
public int Id { get; set; }
[MaxLength(8)]
public string Symbol { get; set; }
[OneToMany(CascadeOperations = CascadeOperation.All)] // One to many relationship with Valuation
public List<Valuation> Valuations { get; set; }
}
public class Valuation
{
[PrimaryKey, AutoIncrement]
public int Id { get; set; }
[ForeignKey(typeof(Stock))] // Specify the foreign key
public int StockId { get; set; }
public DateTime Time { get; set; }
public decimal Price { get; set; }
[ManyToOne] // Many to one relationship with Stock
public Stock Stock { get; set; }
}