2009-04-29 12 views
1

Während Ausführung des folgenden Codes bekomme ich HTTP 500 Internal Server Error.500 Fehler beim Löschen in LINQ

public bool DeleteData(int dataId, string uploaderName) 
{ 
    using (DataClassesDataContext db = new DataClassesDataContext()) 
    { 
     DataInfo d = db.DataInfos.Where(c => c.DataId == dataId).Single(); 
     db.DataInfos.DeleteOnSubmit(d); 
     db.SubmitChanges(); 
    }   
    return true; 
} 

Dieser holt den Wert in "d", aber während db.SubmitChanges(); Ausführung Ich sehe einen 500 Fehler. Was kann der Grund sein? Die ID-Spalte ist ein Primärschlüssel und auch Identität.

Auch mag ich wissen, wie zu implementieren "und" in LINQ, so etwas wie diese:

DataInfo d = db.DataInfos.Where(c => c.DataId == DataId AND 
           c.UploaderName==uploaderName).Single(); 

Antwort

2

Implementierung "und" ist einfach - das ist ein C# Ausdruck, nachdem alle:

DataInfo d = db.DataInfos.Where(c => c.DataId == DataId && 
           c.UploaderName == uploaderName).Single(); 

Was den Fehler 500 betrifft, so ist das fast sicher eine Ausnahme, aber ohne die Details der Ausnahme ist es schwer zu wissen, was falsch ist. Bevor Sie versuchen, den LINQ-Fehler zu beheben, sollten Sie sicherstellen, dass Sie jede Ausnahme protokollieren, die dazu führt, dass eine Anforderung fehlschlägt. Dies wird Ihnen bei zukünftigen Fehlern helfen. Mit der Protokollierung sollten Sie uns sagen können, was die Ausnahme ist, und an dieser Stelle können wir Ihnen helfen, sie zu beheben.

+0

Danke Jon für all Ihre Hilfe. Wirklich der gleiche Code funktioniert von einer anderen Lösung. – Wondering