2013-10-05 7 views
0

Я разрабатываю службу WCF RESTful с C#, .NET Framework 4.0 и Entity Framework Code First.Соедините две таблицы, чтобы получить User.Name

Это мои таблицы:

enter image description here

Я хочу, чтобы выбрать на базе:

SELECT PostLine.UserId, PostLine.Description, PostLine.DateUtc, User.Name 
FROM PostLine, User 
WHERE User.UserId == PostLine.UserId 

И добавив фильтр для PostLine.DateUtc.

Теперь я делаю это:

DateTime fourDaysAgo = DateTime.Now.Date.AddDays(-4); 

var postLines = 
    context.PostLines.Where(p => DateTime.Compare(p.DateUtc, fourDaysAgo) > 0); 

Но моя проблема в том, что я не знаю, как присоединиться User таблицу, чтобы получить User.name.

Как я могу присоединиться к таблице пользователей, чтобы получить User.Name?

ответ

1

Убедитесь, что ваш PostLine класс имеет свойство User типа:

public class PostLine 
{ 
    // your properties 

    public User Author { get; set; } 
} 

Тогда:

string authorOfFirstPostLine = context.PostLines.First().Author.Name; 
0

Попробуйте это:

DateTime fourDaysAgo = DateTime.Now.Date.AddDays(-4); 

var postLines = 
    context.PostLines 
      .Join(context.User, 
        p => p.UserId, 
        u => u.UserId, 
        (p, i) => new {p.UserId, p.Description, p.DateUtc, u.Name}) 
      .Where(p => DateTime.Compare(p.DateUtc, fourDaysAgo) > 0); 
Смежные вопросы