将linq添加到sqlSelect后,从源代码中获取值

本文关键字:源代码 获取 linq 添加 sqlSelect | 更新日期: 2023-09-27 18:25:01

我想绑定一个以产品名称和orderItemID为值的dropdownlist(两者都来自两个单独的表,但有关系)

以下是数据库设计(为简洁起见,省略了一些列)

Order - ID, Name, address
OrderItems - ID, OrderID, ProductID, Price 
Products - ID, Name, description, Price

这是连接所有的代码

var oList = ReturnOrderItems(OID).Select(pr => new {pr.Product.Name }).ToList();
DropdownListItems.DataSource = oList;
DropdownListItems.DataTextField = "NEED THE ORDER ITEM ID";
DropdownListItems.DataValueField = "Name";
DropdownListItems.DataBind();

ReturnOrderItems是一种通过订单ID获取所有订单项的简单方法。

然后我添加了一个Select来返回产品名称(因为OrderItems与products表有关系)。

到目前为止,这是有效的,并返回产品名称,这很好,但我如何获得订单项的ID(它将保存在ReturnOrderItems(OID)方法中?)?

我试过几种方法,但我得到的最多的是productID,这不好——我应该怎么做?

将linq添加到sqlSelect后,从源代码中获取值

假设该方法返回OrderItem的集合,那么您将执行

var oList = ReturnOrderItems(OID).Select(pr => new {pr.Product.Name, pr.ID }).ToList();

此外,你确定要存储名称并显示id吗,否则我认为你想要这个:

DropdownListItems.DataTextField = "Name";
DropdownListItems.DataValueField = "ID";