【发布时间】:2018-06-08 00:20:53
【问题描述】:
我正在尝试构建一个 asp.net webforms 应用程序来充当 sql 数据库的前端。
see database table relations in this image
简单地获取表值不是问题。 例如,像这样显示“项目”表中的值:
var items = from i in db.Items
select new
{
ID = i.Item_ID,
Name = i.Name,
Barcode = i.BarCode,
Description = i.Description,
ItemType = i.ItemType1.ItemTypeName,
LocationCount = i.Location_Item_Juncs.Count
};
GridView1.DataSource = items;
GridView1.DataBind();
looks like this in webforms webpage
问题是获取某件商品的供应商信息之类的信息。
一个项目可以有多个“供应商”、“位置”和“接收日期”!
在 SQL 中,我可以像这样查询这些信息:
select Supplier.Name, Supplier.Adress, Supplier.Email, Supplier.Phone, Supplier.Supplier_Zipcode
from item, Supp_Company, Supplier
where Item_ID = 8 and Item_ID = ItemSub_ID and SupplierJunc_ID = Supplier_ID
results look like this in linqpad
这些是项目 ID 为 8 的项目的供应商信息。
注意,查询中涉及 3 个表(Item、Supp_Company、Supplier),并且必须匹配 2 对值才能选择有效值。
我想在 LINQ 中复制该查询以在我的 Web 表单应用程序中使用。 我相信这个问题的解决方案也适用于获取物品的位置和“收到日期”。
是否可以像在 SQL 中一样在 LINQ 中使用类似的“where”子句?语法是什么样的?
【问题讨论】:
-
你试过Linq Joins吗?