0

休閑リクエストを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 );
}
4

1 に答える 1

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遅延実行を使用します。

于 2013-01-15T13:01:17.877 に答える