2012-03-13 4 views
2

Я в настоящее время есть 2 таблицы следующим образом в моей базе данных:Ведомость материалов Query

Table: SampleProducts 
SampleProductsId (PK) Name 
1        A 
2        B 
3        C 
4        D 
5        E 
6        F 
7        G 

Table: SampleProductsBoms   
SampleProductsBomId (PK) ParentId (FK) ChildId (FK) Quantity 
1        1    2    3 
2        2    3    4 
3        4    6    2 

ParentId и ChildId как эталонным SampleProductsId

На английском языке, так что я могу гарантировать, что мы все на той же странице: Продукт а состоит из 3 B продукта B состоит из 4 из C продукта D состоит из 2 из F

Я хотел бы создать хранимое заявление процедуры/LinQ или somethi нг, которые я могу использовать в моем MVC 3 с # веб-приложение, которое даст мне следующую структуру таблицы/объекта использовать ...

Пример:

Recursive Query to find the components of B 
ProductId Name Quantity 
    3  C  4 
    6  F  2 

Это может идти довольно глубоко, так что я действительно нужна рекурсия!

+0

вы пробовали КТР –

+0

Нет Я нету. Я из PHP-фона. Я могу сделать это в PHP/mySQL относительно легко. Это технология Microsoft, которую я не использовал для ... Синтаксиса SQL-сервера, синтаксиса LinQ, синтаксиса C# и синтаксиса CTE, а также изучения способа Visual Studio для выполнения каких-либо задач ... Создавать viewModel для размещения запроса или быть лучше/быстрее, просто для создания хранимой процедуры ... У меня теперь есть головные боли ... Если бы вы могли предоставить мне простую Хранимую процедуру или что-то, что будет тянуть за этой таблицей, было бы очень признательно. Спасибо – Gravy

+0

Пожалуйста, не добавляйте в свои заголовки такие вещи, как «- Sql Server 2008 VS2010 MVC 3 C#». Для этого нужны теги. –

ответ

0

КТР полезно для рекурсивно, как требуется в вашей постановке задачи проверить ссылку

Common Table Expression

или я думаю, что следующий запрос может также решить вашу цель

select components.SampleProductId as productid,components.Name as Name,Quantity 
from SampleProductsBOM bom 
inner join SampleProducts products 
on products.ParentId=bom.ParentId 
inner join SampleProducts components 
on components.SampleProductId=bom.ChildId 
where products.Name='B' 
+0

Спасибо, но в вашей ссылке их примеры содержат объединения. Это делает понимание того, что происходит очень запутанным ... Я больше потерял, чем там, где я начал. – Gravy

+0

Что сбивает с толку, вы можете выполнить свой запрос в linq, а также создать процедуру и карту, которые также используют EF. вам нужно выбрать, где вы хотите выполнить эту задачу, если ваше гнездо глубоко, я думаю, что вам следует предпочесть процедуру, а не linq. это обеспечит гибкость. –

+0

Спасибо, давайте попробуем и дадим вам знать, как это происходит. – Gravy

Смежные вопросы