Linq 2 SQL左边加入单声道

时间:2013-01-15 12:56:09

标签: linq linq-to-sql mono

我无法获得在Mono中工作的请求: 没有连接就可以了。 当我只选择t1时它也有效,但我无法从两个表中选择一些东西。 我想我想要一个左连接,我总是在t1中有条目,如果NameOfFile与FileName匹配,那么我想要连接表。

额外问题:我的查询何时执行?当我运行foreach循环时?

var result = (
            from t1 in db.Table1 
            join t2 in db.Table2 on t1.FileName equals t2.NameOfFile
            into joinDep                
            from t3 in joinDep.DefaultIfEmpty () 
            select new 
            {
            Time = t1.WriteTime,
            Name = t2.NameOfFile

            }
        )
        .OrderByDescending (c => c.Time.Date)
        .Take (10);
foreach (var entry in result)
{
    Console.WriteLine (entry.Name );
}

1 个答案:

答案 0 :(得分:2)

使用此:

var query = from t1 in db.Table1 
            join t2 in db.Table2 on t1.FileName equals t2.NameOfFile into gj
            from joinDep in gj.DefaultIfEmpty ()
            select new 
            {
               Time = t1.WriteTime,
               Name = joinDep.NameOfFile
            };

var result = query.OrderByDescending (c => c.Time.Date)
                .Take (10);

是。 Take使用延迟执行。