Как вернуть тот же объект с linq, как с лямбда - PullRequest
0 голосов
/ 10 ноября 2018

Я пытаюсь использовать объект с Entity Framework Core, когда использую запрос linq. Но объект всегда анонимный, чего я не хочу. У меня есть этот код:

                var query = (from c in context.UserTest
                         join k in context.OneToTest on c.FkOneToTestId equals k.Id
                         select new { c, k }).ToList();

который является анонимным объектом. Но с этим кодом:

 var test = context.UserTest
            .Include(one => one.OneToTest)
            .ToList();

Я хочу иметь один и тот же объект в запросе и тесте . Теперь в тесте есть List<UserTest> и в запросе List<'a>. Есть ли простой способ, как это сделать с помощью linq?

1 Ответ

0 голосов
/ 11 ноября 2018

Эквивалент

var test = context.UserTest.Include(one => one.OneToTest).ToList();

есть:

var test = (from c in context.UserTest.Include(one => one.OneToTest)
            select c).ToList();

Единственный способ, которым я знаю, что я не использую «Включить», - это создание нового объекта, в котором соединение не требуется:

var test = (from c in context.UserTest
            select new UserTest
                {
                    Id = c.Id,
                    OneToTest = c.OneToTest,
                    // ...
                }).ToList();
...