2016-08-16 2 views
3
var row = DataContext.TableA.FirstOrDefault(x => x.Col1 == "foo" && x.Col2 == "bar"); 
row.Col3 = "xyz"; 
DataContext.SaveChanges() 

I Col3="xyz" erwartet nur für Col1="foo" and Col2="bar" aktualisiert werden. Aber es aktualisierte mehr Zeilen, die ich erwartet hatte. Wenn ich die Abfragen protokollierte, scheint die von EF generierte Abfrage insgesamt Col2 zu fehlen. Irgendeine Idee warum?EF fehlt where-Klausel in Update

UPDATE [dbo].[TableA] 
SET [Col3] = @0 
WHERE ([Col1] = @1) 

-- @0: 'xyz' (Type = String) 

-- @1: 'foo' (Type = String) 
+0

Was ist PK in 'TableA'? –

+0

Es ist eine Zusammensetzung von 'Col1' und' Col2'. – Nemo

+0

verwenden Sie Code zuerst? Sind Sie sicher, dass Sie Entitäten korrekt zugeordnet haben? –

Antwort

3

Bei der Verwendung von Fluent API angeben zusammengesetzten Primärschlüssel Sie new Schlüsselwort verwenden müssen anonymen Typ zu erstellen.

HasKey(m => new { m.Col1, m.Col2 }); 
Verwandte Themen