我有以下表格:
我正在使用Entity Framework Database First,因此会生成以下实体类:
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的类型更改为object。
private List<object> saleItems = new List<object>();
这是最好的方法吗?
答案 0 :(得分:1)
就像SQL一样,LINQ也支持JOIN。您可以阅读有关其语法here的更多信息。您应该相应地更改您的查询以获得结果。我正在引导您进行更详细的解释,而不是给出准确的答案,因为它包含的宝贵信息将在未来帮助您。