public long GetNewCRN()
{
return ((from c in DataContext.GetTable<Cust_Master>()
select c.CUSTSERH_CRN).Max() + 1);
}
Wird diese Abfrage Linq to Sql
zuerst alle Datensätze aus der Tabelle abrufen und dann das Maximum der Spalte auswählen?Wird diese LINQ-TO-SQL-Abfrage alle Datensätze aus der Tabelle abrufen?
Wenn ja, dann ist es nicht eine schlechte Idee mit linq to sql
anstelle von normalen SqlCommand
?
Oder gibt es einen anderen Weg, es in linq to sql
zu tun?
Wenn ich Console.Out anschließe, sehe ich nichts (die Eingabeaufforderung öffnet sich nicht einmal).
Aber als ich zählen folgende: -
context.Log = new System.IO.StreamWriter("d:\\abcd.txt");
ich eine Fehlermeldung erhalten, dass „der Prozess nicht auf die Datei zugreifen, da sie von einem anderen Prozess verwendet wird“, und dieser Prozess ist „w3wp. exe ".
Wie kann ich dann die SQL-Befehle sehen, die von DataContext ausgeführt werden?
Haben Sie haben versucht, es zu testen und es zu profilieren? – Phill
Eine neue "CRN" wie diese zu erhalten, ist eine schlechte Idee zu beginnen ... es ist ** nie ** sicher, wenn mehrere Benutzer diese Datenbank benutzen! Wenn Sie eine automatisch inkrementierende Zahl haben möchten (was ich denke, dass Sie das hier tun), verwenden Sie eine 'INT IDENTITY' in Ihrer Tabelle - das ist der einfachste Weg, um einzigartige und ständig wachsende Nummern zuzuweisen. –
Datenbank ist bereits entworfen und ich muss es verwenden, es ist nicht in meinen Händen. – teenup