假设您有一个 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”的字段。
有人可以帮忙吗?
这是针对 LINQ to Entity 的。
我见过这个:
如何使用 LINQ 将 List<String> 与 DB 表进行比较
但不知道做一个 LEFT JOIN。
蒂亚!
我知道这很长;但感谢阅读。
为 MichaC 更新:
在 CTable 的数据库中,我们有这些 CarID:
CarID
_____
82174F2000000
82174F2000001
82174F2000002
82174F2000003
假设表 (tntable) 包含分解为记录的字符串:
CarID
_____
82174F2000000
82174F2000001
82174F2000002
82174F2000003
82174F2000004
82174F2000005
所以,像这样的 LEFT JOIN:
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