SQLの削除コマンドをLINQに変更しようとしています。これは私のSQLコマンドです:
DELETE FROM [TrackPoints]
WHERE [RouteFK] IN (SELECT RouteId
FROM Routes
WHERE UserId = @UserId)
これは私が書いたLINQコードです:
int UID =1;
FirstDataContext aspnetdb = new FirstDataContext();
var res1 = from q1 in aspnetdb.Routes
where q1.UserId == UID
select q1.RouteId;
foreach (var k in res1)
{
var eigen = from p in aspnetdb.Trackpoints
where p.RouteFK == k
select p.TrackPointId;
aspnetdb.Trackpoints.DeleteOnSubmit(eigen.First());
aspnetdb.SubmitChanges();
}
しかし、この行にはエラーがあります:
aspnetdb.Trackpoints.DeleteOnSubmit(eigen.First());
それは言った:
'System.Data.Linq.Table.DeleteOnSubmit(LINQ_Test.Trackpoint)'に最適なオーバーロードされたメソッドの一致には、いくつかの無効な引数があります
私は何をすべきか?