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.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage