पर सहेजे बिना इकाइयों को संग्रहित करना डेटाबेस को सहेजे बिना ऑब्जेक्ट कॉन्टेक्स्ट में अस्थायी आइटम को कैसे संग्रहीत करें?इकाई फ्रेमवर्क: डेटाबेस
संदर्भ में भंडारण HttpContext, वर्ग द्वारा प्रदान: 1) FirstPage.aspx.cs:
public class FirstPage : Page
{
protected void Page_Load(object sender, EventArgs e)
{
// crete new item
MyEntity newTemporaryItem = new MyEntity { MyEntityID = Guid.NewGuid() };
// attach them to Context
HttpContext.Current.GetMyContext().MyEntitySet.Attach(newTemporaryItem);
// save changes
HttpContext.Current.GetMyContext().SaveChanges();
// get all attached to Context items
var addedItems = (from se in HttpContext.Current.GetMyContext().ObjectStateManager.GetObjectStateEntries(EntityState.Unchanged)
where se.Entity is MyEntity
select se.Entity).AsQueryable();
int CountInFirstPage = addedItems.Count();
}
}
तो, CountInFirstPage = 1.
public static class HttpContextExtension
{
public static MyEntityDataModelContainer GetMyContext(this HttpContext httpContext)
{
if (httpContext.Items["MyEntityDataModelContainer"] == null)
{
httpContext.Items.Add("MyEntityDataModelContainer", new MyEntityDataModelContainer());
}
return (MyEntityDataModelContainer)httpContext.Items["MyEntityDataModelContainer"];
}
}
दो खाली पृष्ठ नहीं है
2) SecondPage.aspx.cs:
public class FirstPage : Page
{
protected void Page_Load(object sender, EventArgs e)
{
// get added in First page items From HttpContext
var addedItems = (from se in HttpContext.Current.GetMyContext().ObjectStateManager.GetObjectStateEntries(EntityState.Unchanged)
where se.Entity is MyEntity
select se.Entity).AsQueryable();
int CountInSecondPage = addedItems.Count();
}
}
यहाँ CountInSecondPage = 0.
कहाँ मैं गलत हूँ?
हां, लिंक द्वारा फर्स्टपेज से द्वितीय पृष्ठ लक्ष्यीकरण ... सत्र – asolovyov
का उपयोग करने का प्रयास करना यह काम करता है! मैंने httpContext.Session के माध्यम से HttpContextExtension को रीमेड किया। धन्यवाद! – asolovyov
अच्छा। कोई फर्क नहीं पड़ता :) – sra