我在我的 Xamarin 项目中使用SQL-NET 扩展。我正在尝试使用 where 子句返回我的模型的子元素。使用网站上的示例模型:
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; }
}
我可以使用以下方法成功返回一个特定项目,其中填充了子项:
var storedValuation = db.GetWithChildren<Valuation>(valuation.Id);
但是我不知道如何使用Where
子句而不是Get
. 我努力了:
var results = db.Table<Valuation>().Where(x=>x.Price > 5.0m).ToList();
这将返回所有 Stock 参数为空。然后我可以遍历每个结果并设置它们,但我认为在原始查询中必须有更好的方法来做到这一点?