Новое в EntityFramework, как мне написать этот запрос в linq для лица - PullRequest
0 голосов
/ 26 октября 2011
SELECT i.answerc, d.answera, d.answerb
FROM tableone AS u 
INNER JOIN tabletwo AS i ON u.OneId = i.OneId
INNER JOIN tablethree   AS l ON u.TwoId = l.TwoId
INNER JOIN tablefour    AS k ON u.ThreeId = k.ThreeId
INNER JOIN tablefive    AS p ON u.fourId = p.fourId
INNER JOIN tablesix AS d ON u.fiveId = d.fiveId
WHERE u.columnone  = @parameter_one
AND l.columnone = @parameter_two
AND k.columnone = @parameter_three
AND p.columnone = @Parameter_four

У меня есть Созданная модель, но то, как я написал бы этот запрос, меня сейчас смущает? Кто-нибудь может помочь мне здесь? У меня это работало с использованием старой школы SqlConnection, но мне сказали перенести его на Entity Framework 4.

Ответы [ 3 ]

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

Если ваши таблицы не находятся в отношениях, то в файле .edmx отсутствуют свойства навигации.Таким образом, ваш LINQ должен выглядеть примерно так:

var query = from u in context.tableone
    join i in context.tabletwo on u.OneId equals i.OneId  
    join l in context.tablethree on u.TwoId equals l.TwoId 
    join k in context.tablefour on u.ThreeId equals k.ThreeId 
    join p in context.tablefive on u.fourId equals p.fourId  
    join d in context.tablesix on u.fiveId equals d.fiveId
    where u.columnone == parameterONE 
      && l.columnone == parameterTWO
      && k.columnone == parameterTHREE
      && p.columnone == parameterFOUR
    select new { i.answerc, d.answera, d.answerb };

Где параметрXXX - переменные.Но если у вас есть свойства навигации, вы должны их использовать!

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

Если у вас установлены отношения, я думаю, вы можете сделать что-то вроде этого.

var query = from u in context.tableone
    where u.columnone == parameterONE 
      && u.tablethree.columnone == parameterTWO
      && u.tablefour.columnone == parameterTHREE
      && u.tablefive.columnone == parameterFOUR
    select new { u.tabletwo.answerc, u.tablesix.answera, u.tablesix.answerb };
1 голос
/ 26 октября 2011

Если вы используете файл .edmx, вы можете взглянуть на конструктор и посмотреть, каковы ваши свойства навигации. Вместо того, чтобы думать прямо в SQL, подумайте больше о том, как бы вы построили объект, который вы пытаетесь извлечь из базы данных, на основе свойств навигации вашего .edmx.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...