-1
すべての異なる行を取得しようとすると、linqを使用して複数のテーブルから情報を取得し、それぞれの製品に対して1行のデータしか返さないという問題があります。各製品LINQ複数の結合を持つ個別の行
最初のバージョンつかんで私が何をしたいの
select DISTINCT * from z_product as zp
inner join orders_products op on zp.ProductId = op.products_id
inner join products p on op.products_id = p.products_id
inner join orders o on o.orders_id = op.orders_id
inner join product_design d on d.products_id = p.products_id
where tray = 35
group by zp.Id
種類は、MySQL Workbenchの全ての情報を 結果2つの製品を
セカンドバージョン
試みのために複数の行を返す加入情報を外側にグループ化せずに、しかし、私は必要なすべての列を一覧表示する必要があります。私はまだやりたいことはありません。
すべての列をリストする必要はありますか? LINQでこれを行うにはどうすればよいですか?私が何をしたいの
select ass.* from z_product as zass LEFT JOIN (SELECT zp.* from z_product as zp
left join orders_products op on zp.ProductId = op.products_id
left join products p on op.products_id = p.products_id
left join orders o on o.orders_id = op.orders_id
left join product_design d on d.products_id = p.products_id
left join orders_products_attributes a on a.orders_products_id = op.orders_id
group by zp.Id) ass
ON ass.Id = zass.Id
where zass.Tray=35
種類、包括的な使用してMySQL Workbenchの全ての情報を 結果2つの製品を
So i want to get something like this;
[What i want in LINQ][1]
Attempt version 1 in LINQ
var orderProducts = (from zp in SqlContext.z_product
join op in SqlContext.orders_products on zp.ProductId equals op.products_id
join p in SqlContext.products on op.products_id equals p.products_id
join o in SqlContext.orders on op.orders_id equals o.orders_id
join d in SqlContext.product_design on p.products_id equals d.products_id
join a in SqlContext.orders_products_attributes on op.orders_id equals
a.orders_products_id
where zp.Tray == SelectedTray.Id
group new Product
{
OrdersProduct = op,
Product = p,
Order = o,
AreaProduct = zp,
ProductDesign = d,
OrdersProductsAttributes = a,
} by zp.Id
into product
select product);
試み? linq製品群を生産します。各グループにはオブジェクトのリストがあります。私はただ2つの製品がほしい。
2つのグループの各グループは、そのアイテムのリストです。私は2つの製品がほしいと思う。
希望の結果を生成する動作中のSQLクエリがある場合は、そのクエリのみをポストしてください(そして、*を含むカラムエイリアスを必ず含めてください)。 ORM(LinqToSQL、EF(バージョン)、EF Coreなど)、モデルクラス、およびリレーションシップも指定します。 –
どちらも正常に動作しますが、完全性は完全にはわかりません。私は関係のない既存のDBでEF6を使いたいです。 「*を含む列のエイリアス」とはどういう意味ですか?すべてがあります。 –
@IvanStoevなぜ-1つの質問? ORMはここではC#式を使用しても問題ありません。エイリアスはすべてです。あなたの入力とマークダウンは無効ですか? –