0

我有以下表格:

在此处输入图像描述

我首先使用实体​​框架数据库,因此生成了以下实体类:

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>();

这是最好的方法吗?

4

1 回答 1

1

就像 SQL 一样,LINQ 也支持 JOIN。您可以在此处阅读有关其语法的更多信息。您应该相应地更改查询以获得结果。我不是在灌输确切的答案,而是引导您进行更详细的解释,因为它包含有价值的信息,将来也会对您有所帮助。

于 2013-04-04T07:46:13.577 回答