Присоединиться к Query C # SQL Server - PullRequest
0 голосов
/ 10 сентября 2018

Я занимаюсь разработкой в ​​Visual Studio, используя ядро ​​asp.net и Entity Framework.

Это мой запрос

var Male = from s in _context.ApprovalKits 
           join r in _context.Registrations on s.StundetId equals r.StundetId into a
           where s.RoomType.Equals(RoomType.s)
                  && s.HealthCondition.Equals(HealthCondition.none)
                  && r.gender.Equals(Gender.m)
           select a;

Ошибка r.gender:

Имя 'r' не существует в текущем контексте

Как я могу исправить свой запрос?

1 Ответ

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

Если у ваших EF-сущностей правильно настроены ассоциации, вам никогда не нужно использовать ручные объединения в Linq, потому что вы можете просто сделать это:

List<Registration> maleRegistrations = db.Registrations
    .Include( r => r.ApprovalKit )
    .Where( r => r.ApprovalKit.RoomType == RoomType.S )
    .Where( r => r.HealthCondition == HealthCondition.None )
    .Where( r => r.Gender == Gender.Male );
    .ToList();

(Вы также можете объединить Where, например, так:)

List<Registration> maleRegistrations = db.Registrations
    .Include( r => r.ApprovalKit )
    .Where( r =>
        r.ApprovalKit.RoomType == RoomType.S &&
        r.HealthCondition == HealthCondition.None &&
        r.Gender == Gender.Male
    )
    .ToList();
...