Ich habe eine einfache Entität.Entity Framework, habe ich diesen Eintrag zuvor hinzugefügt?
public partial class Thing
{
public Thing()
{}
public int Id { get; set; }
public string Name { get; set; }
}
Ich füge Tausende von neuen Einträgen in eine lokale Datenbank ein, aber es wird nur ein paar hundert einzigartige Dinge geben. Wenn ich SaveChanges nach jeder Einfügung, dann wird es sehr langsam laufen, aber wenn ich nicht SaveChanges dann kann ich nicht sagen, ob der newThing.Name bereits existiert. Oder kann ich? Ich bin ziemlich neblig auf die Überprüfung, wo etwas im Kontext der Datenbank vs vor/nach SaveChanges existiert. Kann das jemand für mich klären?
Thing newThing = new Thing();
newThing.Name = "MyName";
context.Things.Add(d);
//returns null
Thing myFirstThing = context.Things.FirstOrDefault(c => c.Name == newThing.Name);
//returns false
if (context.Detectors.Any(c => c.Name == newThing.Name))
{ //do some stuff}
Danke für die Antwort. Ich denke, ich werde mit Ihrer Wörterbuchidee gehen. Es gibt nur 400 eindeutige Einträge. Ich werde wahrscheinlich eine Liste obwohl verwenden. –
kurgaan
@ kurgaan Froh, zu helfen. Wenn Sie jedoch eine Liste verwenden, erhalten Sie nicht die Leistung eines Wörterbuchs. Wenn Sie eine Liste durchsuchen, durchläuft sie nur die Liste. Wenn Sie ein Dictionary oder Hashset verwenden, führt es keine einfache Schleife durch - es ist eher so, als hätte es einen Index und Sie erhalten eine viel bessere Leistung beim Nachschlagen. – JMarsch