подзапросы в Linq to Sql - PullRequest
       20

подзапросы в Linq to Sql

2 голосов
/ 08 марта 2011

IM застрял в запросе linq, где я ищу базу данных и показываю результат, используя

DBSearchDataContext db = new DBSearchDataContext();
        object q = from b in db.Products
                   where b.ProductCode.Contains(val) |
                   b.ProductName.Contains(val) |
                   b.Specification.Contains(val) |
                   b.Description.Contains(val) |                       
                   b.Category.Contains(val) 
                   select b;

      GridView1.DataSource = q;
     GridView1.DataBind();

Я не могу отобразить имя категории из таблицы категорий, где совпадает ID категории.

Я делаю это в sql какэто

как это сделать в linq

SELECT ID, ProductCode, DisplayOrder, ProductName, imgThumb, inStock, Status, Amount, (SELECT Category FROM Category AS aaa WHERE (Products.CategoryID = CategoryID)) AS Category FROM Products ORDER BY ID DESC

помогите мне

Ответы [ 2 ]

1 голос
/ 08 марта 2011

Если вам не хватает отображения, почему бы не использовать простое соединение?

var q = from p in db.Products
        join c in db.Category on p.CategoryID equals c.CategoryID
        where ...
        select new
        {
          p.ProductCode,
          ...,
          c.Category
        };

или с правильными сопоставлениями:

var q = from p in db.Products
        where ...
        select new
        {
          p.ProductCode,
          ...,
          p.Category.Category
        };
0 голосов
/ 08 марта 2011

Вы можете поместить подзапрос в предложение Linq LET. См

например.

...