मेरे पास क्लास व्यक्ति एनएचबीर्नेट के साथ डेटाबेस में मैप किया गया है। मैं डीबी से वस्तुओं को लोड करता हूं और इसे विभिन्न ग्राहकों को भेजता हूं। पहला ग्राहक नाम और देश की संपत्ति को संशोधित करेगा। दूसरा ग्राहक केवल नाम संपत्ति को संशोधित करेगा। फिर दोनों सर्वर पर संशोधित ऑब्जेक्ट लौटाते हैं। जब मैं पहले क्लाइंट से डेटा सहेजता हूं - तब सही ढंग से सहेजा जाता है, दोनों नाम और देश अपडेट किए जाते हैं। जब मैं दूसरे क्लाइंट से डेटा सहेजता हूं - मुझे समस्या है। यह पहले ग्राहक से डेटा ओवरराइड था और देश का नया नाम और प्रारंभिक मूल्य बचाता था।मैं केवल परिवर्तित गुणों को सहेजने के लिए NHibernate को कैसे बता सकता हूं
मैं एनएचबेर्नेट को केवल नाम मान बचाने के लिए कैसे बता सकता हूं और देश मूल्य को ओवरराइड नहीं कर सकता?
public class Person
{
public string Name { get; set; }
public string Country { get; set; }
}
public static List<Person> GetEntities()
{
var factory = CreateSessionFactory();
using (ISession session = factory.OpenSession())
{
return session.CreateCriteria<Person>().List<Person>();
}
}
public static void SaveEntities(List<Person> entities)
{
var factory = CreateSessionFactory();
using (ISession session = factory.OpenSession())
{
using (var t = session.BeginTransaction())
{
foreach (var person in entities)
{
session.Merge(person);
}
t.Commit();
}
}
}
पी.एस: के लिए खेद है मेरा बुरा अंग्रेजी
धन्यवाद स्टीफन।मैं ऑब्जेक्ट में परिवर्तनों का पता लगाने के लिए ऑब्जेक्ट के दूसरे क्लाइंट मूल स्थिति से वापस भेज सकता हूं और केवल संशोधित गुणों को सहेज सकता हूं। – gagabu
यह ध्यान रखना महत्वपूर्ण है कि यह उत्तर केवल प्रश्न के संदर्भ में सच है, जहां ओपी अलग-अलग इकाइयों के साथ काम करता है। यदि कोई मौजूदा सत्र से लोड की गई संस्थाओं के साथ काम करता है, तो एनएचबीर्नेट केवल उन्हीं गुणों को अपडेट कर सकता है, उन इकाइयों को उनकी 'कक्षा' घोषणा पर सक्षम 'गतिशील-अपडेट' के साथ मैप करके, [विद्रोहकर्ता द्वारा उत्तर दिया गया] (/ a/6271210/1178314) । –