SQLite net扩展一对多关系Windows Phone

时间:2015-09-03 16:48:30

标签: sqlite-net-extensions

我正在使用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是什么问题?

这就是它向我展示的方式

enter image description here

1 个答案:

答案 0 :(得分:0)

您必须使用db.GetWithChildren<Stock>()代替db.Table<Stock>()

来自twincoders的例子:

// Get the object and the relationships
var storedValuation = db.GetWithChildren<Valuation>(valuation.Id);