我正在使用sqlite net扩展为2个表创建一对多关系,我正在使用我的C#代码中的表我按照官方网站https://bitbucket.org/twincoders/sqlite-net-extensions中的教程
[Table("Stock")]
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; }
}
[Table("Valuation")]
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; }
}
这是我创建Stockobject并将其插入Db
的代码var valuation = new List<Valuation>();
valuation.Add(new Valuation { Price = 1 });
var stock = new Stock();
stock.Valuations = valuation;
db.InsertWithChildren(stock);
但是当我调试代码并从数据库中读取股票数据时,它显示我为估值列表的null是什么问题?
这就是它向我展示的方式
答案 0 :(得分:0)
您必须使用db.GetWithChildren<Stock>()
代替db.Table<Stock>()
。
来自twincoders的例子:
// Get the object and the relationships
var storedValuation = db.GetWithChildren<Valuation>(valuation.Id);