にエンティティフレームワークとLINQを使用して2つのテーブルを結合することはquery results 1カンマ区切り製品コードと数量は私がorderManagement.where「SalesOrderDetails」テーブルのためにC#で2つのテーブルを結合しようとしていますC#の
「SalesOrder」を返しますテーブルリターンオーダーの詳細。 私はそれは、ストアドプロシージャを使用せずに、私がしたい完璧なoutput.same出力を与えるストアドプロシージャ
ALTER procedure [dbo].[SP_GetAllOrders]
AS
BEGIN
SELECT
SalesOrder.OrderDate,
SalesOrder.OrderTitle,
SalesOrder.OrderPriority,
Customer.Lname,
Customer.Fname,
OrderType.OrderTypeName,
(
SELECT
CAST(ProductCode AS varchar) + ':' + CAST(Quantity AS varchar) + ','
FROM
SalesOrderDetails
WHERE
SalesOrderDetails.SalesOrderId = SalesOrder.SalesOrderId
FOR xml path('')
) AS 'Product'
FROM
SalesOrder
INNER JOIN Customer ON SalesOrder.CustomerId = Customer.CustomerId
INNER JOIN OrderType ON SalesOrder.OrderTypeId = OrderType.OrderTypeId
END
を書かれています。 私は、エンティティフレームワークは、LINQとC#asp.net.Iがここに
この
を立ち往生しています使用して同じ出力をしたいが、私はTrainingDemoEntitiesエンティティ=新しいTrainingDemoEntities()を試してみましたものです。
var details = (from order in entity.SalesOrders
join cust in entity.Customers
on order.CustomerId equals cust.CustomerId
join ordertypevalue in entity.OrderTypes
on order.OrderTypeId equals ordertypevalue.OrderTypeId
select new
{
orderId = order.SalesOrderId,
orderDate = order.OrderDate,
orderTitle = order.OrderTitle,
orderPriority = order.OrderPriority,
orderType = order.OrderType,
productstr = string.Join(",", (from prod in entity.SalesOrderDetails
where prod.SalesOrderId == order.SalesOrderId
select prod.ProductCode + ":" + prod.Quantity))
}).ToList();
LINQを使用していくつかのサンプル結合をルックアップしてから最初に試し、達成したことを示す必要があります。あなたはここに来てコードを尋ねることはできません。 – Armin
私はコードを求めているだけではありません。私は多くの異なる方法を試しました@Armin – user19041992
データベースに外部キーの関係が設定されていますか? EFはこの関係を利用していますか? SQLで行うのではなく、コンピュータ上の結合を評価していたのは非効率です。 – Dai