मैं डेटा ट्रांसफर ऑब्जेक्ट्स का उपयोग करके इकाई ढांचे और व्यापार परत और उपयोगकर्ता परत के बीच डेटा स्थानांतरित करता हूं। मुझे कुछ संदेह है, अगर मैं किसी ऑब्जेक्ट को पुनर्प्राप्त करता हूं जो डीटीओ में परिवर्तित होता है, तो मैं इकाई ढांचे में सही ऑब्जेक्ट को कैसे अपडेट करूं और न केवल डुप्लिकेट डालें?अद्यतन इकाई ढांचे ऑब्जेक्ट्स
24
A
उत्तर
2
आपको डीटीओ में प्राथमिक या वैकल्पिक कुंजी शामिल करने की आवश्यकता होगी, फिर उस कुंजी को अपडेट पर सही ईएफ इकाई से मेल करें।
7
एक पुराने सवाल, लेकिन सिर्फ मामले में किसी को एक कोड समाधान की जरूरत है:
उदाहरण:
public void EditArticle(
Article article, string articleTypeId, string[] categoryId)
{
var id = 0;
Article art = de.ArticleSet
.Include("ArticleTypes")
.Include("Categories")
.Where(a => a.ArticleID == article.ArticleID)
.First();
var count = art.Categories.Count;
for (var i = 0; i < count; i++)
{
art.Categories.Remove(art.Categories.ElementAt(i));
count--;
}
foreach (var c in categoryId)
{
id = int.Parse(c);
Category category = de.CategorySet
.Where(ct => ct.CategoryID == id).First();
art.Categories.Add(category);
}
art.Headline = article.Headline;
art.Abstract = article.Abstract;
art.Maintext = article.Maintext;
art.DateAmended = DateTime.Now;
art.ArticleTypesReference.EntityKey = new EntityKey(
"DotnettingEntities.ArticleTypeSet",
"ArticleTypeID",
int.Parse(articleTypeId)
);
de.SaveChanges();
}
28
निम्न कोड एक एफई 4 इकाई है कि के रूप में बनाया गया है अद्यतन करेगा दृढ़ता से टाइप किए गए दृश्य से एमवीसी में एक नियंत्रक पैरामीटर:
ऐसा लगता है कि ऑब्जेक्टस्टेट मैनेजर का उपयोग राज्य f को बदलने के लिए है एक बार संदर्भ में इकाई जोड़ा गया है जब रोम संशोधित करने के लिए जोड़ा गया।
MyEntities db = new MyEntities();
db.Product.AddObject(product);
db.ObjectStateManager.ChangeObjectState(product, System.Data.EntityState.Modified);
return db.SaveChanges() > 0;
@Sean मिल्स के अनुसार आप EF5 उपयोग उपयोग कर रहे हैं टिप्पणी:
((IObjectContextAdapter) db).ObjectContext.ObjectStateManager.ChangeObjectState(entity, System.Data.EntityState.Added);
4
//I am replacing player :)
public ActionResult ProductEdit(string Id, Product product)
{
int IdInt = DecyrptParameter(Id);
MyEntities db = new MyEntities();
var productToDetach = db.Products.FirstOrDefault(p=> p.Id == IdInt);
if (product == null)
throw new Exception("Product already deleted"); //I check if exists, maybe additional check if authorised to edit
db.Detach(productToDetach);
db.AttachTo("Products", product);
db.ObjectStateManager.ChangeObjectState(product, System.Data.EntityState.Modified);
db.SaveChanges();
ViewData["Result"] = 1; // successful result
return View();
}
2
यह एफई 5 के लिए काम करना चाहिए: https://stackoverflow.com/a/11749716/540802:
db.Entry(product).State = EntityState.Modified;
संबंधित मुद्दे
- 1. इकाई ढांचे और अद्यतन कैस्केड
- 2. इकाई ढांचे और डीटैचिंग ऑब्जेक्ट्स
- 3. इकाई ढांचे, संबंधित वस्तुओं को अद्यतन करने में समस्याएं
- 4. इकाई ढांचे में विशिष्ट
- 5. चेक बाधा इकाई ढांचे
- 6. इकाई ढांचे में शामिल
- 7. अद्यतन इकाई फ्रेमवर्क
- 8. इकाई ढांचे में परिपत्र निर्भरता
- 9. इकाई ढांचे में एसक्यूएल चलाना?
- 10. इकाई ढांचे और मौजूदा क्लॉज
- 11. इकाई ढांचे में जटिल प्रकार
- 12. इकाई ढांचे के साथ क्वेरी आकार सीमित
- 13. इकाई ढांचे में एक इकाई इकाई में एकाधिक टेबल मैपिंग
- 14. इकाई ढांचे में नेविगेशन गुणों के लिए अद्यतन करने के लिए रिश्ते नहीं मिल सकते
- 15. इकाई ढांचे 4 बनाम इकाई ढांचे 3.5 का प्रदर्शन कैसा है?
- 16. मैपिंग निजी संपत्ति इकाई ढांचे कोड पहले
- 17. इकाई ढांचे, पीओसीओ और एक निजी संपत्ति
- 18. इकाई ढांचे में विदेशी कुंजी 4.1
- 19. इकाई ढांचे में डिस्कनेक्ट ऑब्जेक्ट अपडेट करें
- 20. इकाई ढांचे के साथ गतिशील प्रश्न बनाना
- 21. इकाई ढांचे से संबंधों को कैसे हटाएं
- 22. ado.net इकाई ढांचे पंक्तियों को हटाएं
- 23. इकाई ढांचे में डेटाबेस त्रुटि प्रबंधन
- 24. इकाई ढांचे में संग्रहीत कार्यों का उपयोग
- 25. मैपिंग इकाई ढांचे में संग्रहीत प्रक्रियाओं का चयन करें
- 26. ऑब्जेक्ट्स विभिन्न ढांचे संस्करणों में क्रमबद्ध/deserialize कर सकते हैं?
- 27. एएसपी.नेट और इकाई ढांचे के लिए मेमकैच बनाम रेडिस?
- 28. सीएसला और इकाई ढांचे के साथ विजुअल स्टूडियो 2012 परीक्षण
- 29. इकाई ढांचे के साथ कस्टम एसक्यूएल निष्पादित करें?
- 30. इकाई ढांचे का उपयोग कर डेटाबेस प्रोजेक्ट के खिलाफ प्रोग्राम
अंत में! मैंने अन्य कामकाज के साथ इतना समय बर्बाद कर दिया है - यह डीबीओब्जेक्ट करने की आवश्यकता के बिना कमाल काम करता है। प्रॉपर्टी = पास ऑब्जेक्ट। अद्यतन करते समय प्रत्येक संपत्ति के लिए प्रॉपर्टी। – kape123
यदि ऑब्जेक्टस्टेट प्रबंधक आपके संदर्भ की प्रॉपर्टी नहीं है ((System.Data.Entity.Infrastructure.IObjectContextAdapter) डीबी)। ऑब्जेक्ट कॉन्टेक्स्ट http://stackoverflow.com/a/8968643/678338 –