我有以下表格:
我首先使用实体框架数据库,因此生成了以下实体类:
public partial class Sal1 {
public string SaleID { get; set; }
public string ItemID { get; set; }
public int Quantity { get; set; }
public decimal Total { get; set; }
public virtual Item Item { get; set; }
public virtual Sale Sale { get; set; }
}
然后将 Sal1 行放入数据网格中,如下所示:
private List<Sal1> saleItems = new List<Sal1>();
...
var query = from sa in db.Sal1
where sa.SaleID.Equals(tempSale)
select sa;
foreach(Sal1 si in query) {
saleItems.Add(si);
}
...
dgDetails.ItemsSource = saleItems;
但结果是这样的:
我的问题是,我应该如何调整上面的查询,以便获得与以下 SQL 等效的内容:
select T0.SaleID, T0.ItemID, T1.Name, T0.Quantity, T0.Total
from Sal1 T0 inner join Item T1 on T0.ItemID = T1.ItemID;
提前致谢。
编辑:我似乎找到了解决方案,但我必须这样做:
var query = from sa in db.Sal1
where sa.SaleID.Equals(tempSale)
select new { sa.SaleID, sa.ItemID, sa.Item.Name,
sa.Item.Manufacturer, sa.Quantity, sa.Total };
而且我不得不将 saleItems 的类型更改为对象。
private List<object> saleItems = new List<object>();
这是最好的方法吗?