Visual Studio 2019 Intellisense для Linq присоединился к классу не появляется - PullRequest
3 голосов
/ 04 февраля 2020

Мой VS intellisense не работает, когда я выполняю лямбда-запросы, такие как Join, GroupJoin и др. c. Свойства второй модели никогда не появляются в предложениях. Я извиняюсь за мой английский sh:)

Смотрите изображения:

First Key

Second Key

1 Ответ

3 голосов
/ 04 февраля 2020

Как сказал @JeroenMostert, это известная ошибка. Если вы действительно хотите использовать intellisense, вы можете указать свои типы; с result2 вы получите intellisense.

Вам просто нужно решить, стоит ли явно указывать ваши типы, тем более что это означает, что вы не можете действительно вернуть анонимный объект.

Лично я не думаю, что сделать ваш код более многословным стоит того, поскольку отсутствие intellisense не помешает вам настроить лямбду.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApp1
{
    class Program
    {
        static void Main(string[] args)
        {
            var people = new List<Person>();
            var employees = new List<Employee>();

            var result = employees.Join(people, x => x.Id, y => y.Id, (x, y) => new JoinedItem{ Id = x.Id, Name = y.Name });

            var result2 = employees.Join<Employee, Person, int, JoinedItem>(people, x => x.Id, y => y.Id, (x, y) => new JoinedItem { Id = x.Id, Name = y.Name });

        }
    }

    public class Person
    {
        public int Id { get; set; }
        public string Name { get; set; }
    }

    public class Employee
    {
        public int Id { get; set; }
        public string Name { get; set; }
    }

    public class JoinedItem
    {
        public int Id { get; set; }
        public string Name { get; set; }
    }
}
...