我嘗試將SQL刪除命令更改爲LINQ。這是我的SQL命令:使用LINQ刪除記錄時出錯
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());
提到:
The best overloaded method match for 'System.Data.Linq.Table.DeleteOnSubmit(LINQ_Test.Trackpoint)' has some invalid arguments
我該怎麼辦?
的LINQ to SQL或實體框架? – abatishchev
LINQ to SQL。你能否簡要解釋一下LINQ to SQL和Entity Framework之間的區別? – Kabi
LINQ to SQL是Microsoft在實體框架之前的一個ORM,現在已被廢棄和廢棄。 – abatishchev