Entity Framework 4.1: как выполнить подзапрос в Select - PullRequest
1 голос
/ 27 октября 2011

Я пытаюсь выполнить следующие действия, используя Entity Framework 4.1 Code First:

Select c1,
       c2,
       (select v1 from table2 where id = c3) as col3
from table1

Любая помощь действительно приветствуется.

РЕДАКТИРОВАТЬ:

Например, допустим, у меня есть две таблицы в базе данных,

LookupValues ​​[ID, код, DescResourceID]

Ресурсы [ResourceID, Culture, Value]

DescResourceID и ResourceID являются внешними ключами.

Поэтому я хочу создать конфигурацию или сопоставлениеfor ...

public partial class LookupValues
{
  public virtual string ID;
  public virtual string Code;
  public virtual string Description;
}

Описание сопоставлено с subquery, как указано выше.

Ответы [ 2 ]

1 голос
/ 28 октября 2011

Вы можете попробовать что-то вроде этого:

var query = from x in context.Table1 
            let z = context.Table2
                           .Where(y => y.Id == c3)
                           .Select(y => y.V1).FirstOrDefault()
            select new
                {
                    C1 = x.C1,
                    C2 = x.C2,
                    C3 = z
                };
0 голосов
/ 27 октября 2011

Я бы создал Entity Model и использовал бы LINQ.

Я предполагаю, что вы знаете, что такое LINQ при работе с Entity Framework.

Предположим, у вас есть структура данных, подобнаяследующие;

Продукты и продукты имеют (Столбец1, Столбец2, Столбец3) Ключ Категории и Категории имеет Столбец3, который эквивалентен Продуктам. Столбец3

Выполните следующие действия;

Конечно, это всего лишь некоторый псевдо-код, и потому что я хочу убедиться, что вы освоили LINQ и поняли, что вы можете делать то, что вы хотите в LINQ, используя Entity Framework, поскольку это OR / MI теперь укажет вам наследующий сайт, который должен дать вам подробное руководство по LINQ.

http://weblogs.asp.net/scottgu/archive/2007/05/19/using-linq-to-sql-part-1.aspx

Надеюсь, это поможет!

Счастливого кодирования!;)

...