मेरे पास वीएस 2010 आरसी का उपयोग करके एंटीटी फ्रेमवर्क 4 द्वारा उत्पादित देश के लिए एक साधारण इकाई है। यह नीचे पीओसीओ की तरह कुछ दिखता है।एंटिटी फ्रेमवर्क 4 - हमेशा लागू करने वाले बूलियन प्रॉपर्टी को अपडेट नहीं कर रहा है ApplyCurrentValues
public class Company
{
public int ID { get; set; }
public string Name { get; set; }
public string ISOCode { get; set; }
public boolean Active { get; set; }
}
मेरा भंडार कोड नीचे है। 'डीबी' मेरा एक संदर्भ है जिसे कन्स्ट्रक्टर में शुरू किया गया है।
public void EditCountry(Country countryToEdit)
{
db.Countries.Attach(new Country { ID = countryToEdit.ID });
db.Countries.ApplyCurrentValues(countryToEdit);
db.SaveChanges();
}
countryToEdit में को असत्य से सत्य सक्रिय क्षेत्र बदलने निम्नलिखित एसक्यूएल
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
यह आशा की जाती है पैदा करता है।
अगर मैं countryToEdit में गलत पर सच से सक्रिय क्षेत्र बदलने के निम्नलिखित एसक्यूएल
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
उत्पादन किया जाता है सक्रिय क्षेत्र अद्यतन करने के लिए किए गए कोई प्रयास नहीं है।
यदि आप अपनी संपत्तियों को निरर्थक बूल में बदलने में सक्षम हैं तो भी आप स्टब इकाई दृष्टिकोण का उपयोग कर सकते हैं। डिफ़ॉल्ट मान तब शून्य होगा और ApplyCurrentValues वर्तमान इकाई पर झूठ पर झुकाव से संशोधन को संशोधित करेगा और अद्यतन के लिए अतिरिक्त एसक्यूएल उत्सर्जित करेगा। –