-1

我正在使用 sqlite 网络扩展为正在使用的 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); 

但是当我调试代码并从 db 读取股票数据时,它显示我的估值列表为空,这里有什么问题?

这就是它向我展示的方式

在此处输入图像描述

4

1 回答 1

0

您必须使用db.GetWithChildren<Stock>()而不是db.Table<Stock>().

来自双编码器的示例:

// Get the object and the relationships
var storedValuation = db.GetWithChildren<Valuation>(valuation.Id);
于 2015-09-03T16:56:12.803 回答