IDのリストがあるとします。
string str = "82174F2000000, 82174F2000001, 82174F2000002, 82174F2000003, 82174F2000004, 82174F2000005";
そして、あなたはこれを行います:
var tids = new List<string>(str.Replace(", ", ",").Split(','));
var tntable = tids.AsQueryable();
そして、それを左結合のテーブルと比較したいとします。
var line = from c in db.Ctable
join l in tntable on c.CarID equals l.CarID into c_j
from l in c_j.DefaultIfEmpty()
select new
{
Name = c.OwnerName,
Hours = c.Hours
};
tntableには「CarID」というフィールドがないようです。
誰か助けてもらえますか?
これは、LINQtoEntity用です。
私はこれを見ました:
LINQを使用してList<String>をDBテーブルと比較する方法
しかし、LEFTJOINを行うことを知らない。
TIA!
私はこれが長いことを知っています。しかし、読んでくれてありがとう。
MichaC用に更新:
CTableのデータベースには、次のCarIDがあります。
CarID
_____
82174F2000000
82174F2000001
82174F2000002
82174F2000003
テーブル(tntable)に、レコードに分割された文字列が含まれているとしましょう。
CarID
_____
82174F2000000
82174F2000001
82174F2000002
82174F2000003
82174F2000004
82174F2000005
したがって、このような左結合:
SELECT C.CarID, T.CarID
FROM CTable C
LEFT JOIN tntable T ON C.CarID = T.CarID
あなたにこれをもたらすでしょう:
T.CarID C.CarID
_______ _______
82174F2000000 82174F2000000
82174F2000001 82174F2000001
82174F2000002 82174F2000002
82174F2000003 82174F2000003
82174F2000004 NULL
82174F2000005 NULL