2012-11-22 9 views
5

Aufgrund der Natur meiner Daten Primärschlüssel (das ist Composite) Einigkeit Verletzung ist eine häufige Sache zu treffen. In jedem Fall wird der verletzende Datensatz (der neue) stillschweigend verworfen (der alte Datensatz bleibt dabei unverändert) und die anderen werden eingefügt.Wie implementiert Cross-DBMS-Einfügung-ignorieren mit Entity Framework?

MySQL, zum Beispiel, können wir dies einfach mit INSERT IGNORE anstelle von bare INSERT machen. Aber meine Bewerbung muss datenbankübergreifend sein.

Was kann der beste Weg sein, dieses Verhalten zu implementieren?

+0

Related: http://stackoverflow.com/questions/2760508/insert-ignore-in-ms-sql-server-2005 –

+1

Wenn Sie eine spezielle Logik benötigen, möchten Sie vielleicht erstellen Vorgang zu einem gespeicherten Proc zuordnen. – Pawel

Antwort

0

Da Sie Ihre Frage mit entity-framework markiert haben, schlage ich vor, dass Sie versuchen, so viele Modelle zu generieren, wie Sie verschiedene Datenbanken haben. Dann wird die Verwendung von LINQ zum Durchführen von INSERT IGNORE ein Kinderspiel.

HINWEIS: LINQ-to-SQL unterstützt keine Masseneinfügung, daher möchten Sie möglicherweise parametrisiertes SQL für jedes Modell verwenden.