Ali Majed HA Ответов: 1

Нужна помощь в написании запроса на объединенные таблицы


Привет

У меня есть две таблицы "пользователи"и " письмо". "Письмо" Таблица 2 ФК, связанные с ПК "пользователя" стола: один для "sendto", другая для "SentFrom". Поэтому, если письмо было отправлено, я могу получить имена как получателя, так и отправителя письма из таблицы "пользователь" по их "идентификатору".

Я написал код для извлечения данных для пользователя, который вошел в систему. Он видит свои письма и знает, кто их послал. Но проблема в том, что я не знаю, как показать имя отправителя. Я могу показать его удостоверение. Как я могу получить имя отправителя вместо идентификатора?

Что я уже пробовал:

Код для соединения таблиц" Пользователь "и" буква":

public IEnumerable ShowLetter()
        {
            using (Proj161021Entities _Proj161021Entities = new Proj161021Entities())
            {
                return _Proj161021Entities.UserLetter
                    .Where(c=>c.SendTo==1)
                                  .Select(l => new
                                  {
                                      SenderName = l.SentFrom,
                                      Subject = l.Subject,
                                      Date = l.Date
                                  }).ToList();
            }
        }


Мне нужно показать sentFrom по имени, а не ID из таблицы "пользователь".

заранее спасибо

1 Ответов

Рейтинг:
2

manu_dhobale

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

class User
{
    public int userId { get; set; }
    public string name { get; set; }
}
class Letter
{
    public int letterId { get; set; }
    public int SendTo { get; set; }
    public int SentFrom { get; set; }
    public string subject { get; set; }
    public DateTime date { get; set; }

}
public static void Main(string[] args)
{
    List<User> UserList = new List<User>
{
    new User{userId=1, name="nobel"},
    new User{userId=2, name="kunal"},
    new User{userId=3, name="rijul"},
    new User{userId=4, name="rohan"},
    new User{userId=5, name="manoj"}
};

    List<Letter> UserLetters = new List<Letter>{
    new Letter{letterId=1,subject="sibject text1", SendTo=1,SentFrom=5,date=DateTime.Today},
    new Letter{letterId=2,subject="sibject text2", SendTo=5,SentFrom=5,date=DateTime.Today},
    new Letter{letterId=3,subject="sibject text3", SendTo=1,SentFrom=5,date=DateTime.Today},
    new Letter{letterId=4,subject="sibject text4", SendTo=3,SentFrom=5,date=DateTime.Today},
    new Letter{letterId=5,subject="sibject text5", SendTo=3,SentFrom=5,date=DateTime.Today},
    new Letter{letterId=6,subject="sibject text6", SendTo=4,SentFrom=5,date=DateTime.Today}
};

    var letters = (from ul in UserLetters
                         join ulFrom in UserList on ul.SentFrom equals ulFrom.userId
                         join ulTo in UserList on ul.SendTo equals ulTo.userId
                         select new
                         {
                             SenderName = ulFrom.name,
                             recieverName = ulTo.name,
                             Subject = ul.subject,
                             Date = ul.date
                         }).ToList();



}


Ali Majed HA

Здравствуйте, спасибо за ваш ответ, но он не работает в моем проекте. Я использую web api и Entity Framework. но все равно спасибо