我有以下查询:
IQueryable<BarcodeQuery> barcodes = db.Barcodes.Select(b => new BarcodeQuery
{
id = b.id,
category_id = b.category_id,
...
checkout = b.Checkouts.Select(c => new CheckoutChild
{
id = c.id,
loanee_id = c.loanee_id,
...
})
.Where(c => c.datein == null)
.FirstOrDefault()
});
等等。它基于这个模型:
public class BarcodeQuery
{
public int id { get; set; }
public int category_id { get; set; }
...
public CheckoutChild checkout { get; set; }
public CheckoutStatus checkoutStatus { get; set; }
}
我的问题是关于底部的CheckoutStatus
。它看起来像这样:
public class CheckoutStatus
{
public string status { get; set; }
public int daysUntilDue { get; set; }
public int daysOverdue { get; set; }
}
所有这些值都来自我从查询中获得的信息 - 它们都不在数据库本身中。将CheckoutStatus
值插入每个barcode
记录的最佳方法是什么?
我有一个自己创建CheckoutStatus
值的函数,我只是不知道如何将它们放入barcode
记录中。
谢谢!
答案 0 :(得分:0)
如果b
刚刚使用new
创建,b.Checkouts
如何包含某些内容?我并没有真正了解你的目标。
EF正在将lambda表达式转换为SQL语句。因此,您只能使用实际可以转换为SQL的表达式。只需查询数据库中的条形码,然后将缺少的信息添加到循环中返回的条形码中。
var barcodes = db.Barcodes.Select(...).ToList();
foreach (Barcode b in barcodes) {
b.Checkouts = ...
}