Entity Framework 4 - Boolesche Eigenschaft wird nicht immer mit ApplyCurrentValues aktualisiert
Ich habe eine einfache Entität für ein Land, die von Entity Framework 4 mit VS 2010 RC erstellt wurde. Es sieht ungefähr so aus wie das POCO unten.
public class Company
{
public int ID { get; set; }
public string Name { get; set; }
public string ISOCode { get; set; }
public boolean Active { get; set; }
}
Mein Repository-Code ist unten. 'db' ist ein my-Kontext, der im Konstruktor initialisiert wird.
public void EditCountry(Country countryToEdit)
{
db.Countries.Attach(new Country { ID = countryToEdit.ID });
db.Countries.ApplyCurrentValues(countryToEdit);
db.SaveChanges();
}
Wenn Sie das Feld Active in countryToEdit von false in true ändern, wird die folgende SQL-Anweisung erstellt
update [dbo].[Countries]
set [Name] = @0, [ISOCode] = @1, [Active] = @2
where ([ID] = @3)
@0 nvarchar(256),@1 nvarchar(12),@2 bit,@3 int,@0='Algeria',@1='DZ',@2=1,@3=4
Dies wird erwartet.
Wenn ich das Active-Feld in countryToEdit von true in false ändere, wird die folgende SQL erzeugt
update [dbo].[Countries]
set [Name] = @0, [ISOCode] = @1
where ([ID] = @2)
@0 nvarchar(256),@1 nvarchar(12),@2 int,@0='Afghanistann',@1='AF',@2=1
Es wird kein Versuch unternommen, das Feld Aktiv zu aktualisieren.