2013-10-05 40 views
0

我正在用C#,.NET Framework 4.0和实体框架代码优先开发WCF RESTful服务。加入两个表以获取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);