Click here to Skip to main content
15,881,281 members
Home / Discussions / ASP.NET
   

ASP.NET

 
GeneralRe: Trying to create modal dialog using jQuery Pin
Richard Deeming9-Aug-17 10:10
mveRichard Deeming9-Aug-17 10:10 
GeneralRe: Trying to create modal dialog using jQuery Pin
indian1439-Aug-17 11:44
indian1439-Aug-17 11:44 
GeneralRe: Trying to create modal dialog using jQuery Pin
F-ES Sitecore9-Aug-17 23:11
professionalF-ES Sitecore9-Aug-17 23:11 
GeneralRe: Trying to create modal dialog using jQuery Pin
indian14310-Aug-17 13:03
indian14310-Aug-17 13:03 
GeneralRe: Trying to create modal dialog using jQuery Pin
F-ES Sitecore10-Aug-17 22:09
professionalF-ES Sitecore10-Aug-17 22:09 
GeneralRe: Trying to create modal dialog using jQuery Pin
indian14311-Aug-17 13:13
indian14311-Aug-17 13:13 
GeneralRe: Trying to create modal dialog using jQuery Pin
F-ES Sitecore13-Aug-17 22:18
professionalF-ES Sitecore13-Aug-17 22:18 
QuestionProcedure or function 'sp_getchech' expects parameter '@ID', which was not supplied Pin
samflex9-Aug-17 5:24
samflex9-Aug-17 5:24 
AnswerRe: Procedure or function 'sp_getchech' expects parameter '@ID', which was not supplied Pin
Richard Deeming9-Aug-17 8:14
mveRichard Deeming9-Aug-17 8:14 
GeneralRe: Procedure or function 'sp_getchech' expects parameter '@ID', which was not supplied (SOLVED) Pin
samflex9-Aug-17 14:54
samflex9-Aug-17 14:54 
QuestionWhat is better solutions for complex application and databases Pin
Lakhpat-Singh8-Aug-17 7:22
Lakhpat-Singh8-Aug-17 7:22 
AnswerRe: What is better solutions for complex application and databases Pin
F-ES Sitecore9-Aug-17 0:00
professionalF-ES Sitecore9-Aug-17 0:00 
QuestionGetting Route Values in Controller Pin
Farhad Eft7-Aug-17 7:20
Farhad Eft7-Aug-17 7:20 
AnswerRe: Getting Route Values in Controller Pin
Richard Deeming7-Aug-17 10:21
mveRichard Deeming7-Aug-17 10:21 
GeneralRe: Getting Route Values in Controller Pin
Farhad Eft7-Aug-17 13:19
Farhad Eft7-Aug-17 13:19 
Questiontrying to call a WebApi method along with new Page when button clicked using jQuery Pin
indian14331-Jul-17 15:26
indian14331-Jul-17 15:26 
AnswerRe: trying to call a WebApi method along with new Page when button clicked using jQuery Pin
Richard Deeming1-Aug-17 0:50
mveRichard Deeming1-Aug-17 0:50 
GeneralRe: trying to call a WebApi method along with new Page when button clicked using jQuery Pin
indian1431-Aug-17 7:01
indian1431-Aug-17 7:01 
GeneralRe: trying to call a WebApi method along with new Page when button clicked using jQuery Pin
Richard Deeming1-Aug-17 7:24
mveRichard Deeming1-Aug-17 7:24 
GeneralRe: trying to call a WebApi method along with new Page when button clicked using jQuery Pin
indian1431-Aug-17 13:23
indian1431-Aug-17 13:23 
QuestionI would like to develope new project from scratch. I would like to use ASP.NET MVC 5.0, EntityFramework and SQL Server. Pin
Lad Kunal30-Jul-17 20:14
Lad Kunal30-Jul-17 20:14 
AnswerRe: I would like to develope new project from scratch. I would like to use ASP.NET MVC 5.0, EntityFramework and SQL Server. Pin
Richard MacCutchan30-Jul-17 20:42
mveRichard MacCutchan30-Jul-17 20:42 
AnswerRe: I would like to develope new project from scratch. I would like to use ASP.NET MVC 5.0, EntityFramework and SQL Server. Pin
indian1432-Aug-17 6:57
indian1432-Aug-17 6:57 
QuestionError message: The operation cannot be completed because the DbContext has been disposed Pin
indian14327-Jul-17 11:39
indian14327-Jul-17 11:39 
AnswerRe: Error message: The operation cannot be completed because the DbContext has been disposed Pin
Richard Deeming28-Jul-17 1:31
mveRichard Deeming28-Jul-17 1:31 
It looks like your entity has a navigation property, which isn't being eagerly loaded. When the framework tries to serialize the object to JSON, the main entity tries to load the related entity using lazy-loading. This fails because the DbContext has been disposed.

Entity Framework Loading Related Entities[^]

There are several options to solve this:

1) Turn off lazy loading:
The navigation properties in the returned JSON will all be null.
C#
public List<UserList> Get()
{
    using (AppDevSecEntities ctx = new AppDevSecEntities())
    {
        ctx.Configuration.LazyLoadingEnabled = false;
        return ctx.UserLists.AsNoTracking().OrderByDescending(x => x.LastName).ToList();
    }
}


2) Eagerly load the navigation properties:
You'll need to load all of the navigation properties you need to return. You'll still want to turn off lazy-loading.
C#
public List<UserList> Get()
{
    using (AppDevSecEntities ctx = new AppDevSecEntities())
    {
        ctx.Configuration.LazyLoadingEnabled = false;
        return ctx.UserLists.AsNoTracking().Include(x => x.YourNavigationProperty).OrderByDescending(x => x.LastName).ToList();
    }
}


3) Return a data transfer object (DTO)
Create a specific class containing just the data you need to return. You can either map the entities by hand, or use something like AutoMapper[^] to do the mapping for you.
C#
public List<UserListDto> Get()
{
    using (AppDevSecEntities ctx = new AppDevSecEntities())
    {
        ctx.Configuration.LazyLoadingEnabled = false;
        return ctx.UserLists.AsNoTracking().OrderByDescending(x => x.LastName).ProjectTo<UserListDto>().ToList();
    }
}


4) Store the context at the controller level:
A new instance of the controller class is created to serve each request, so it's safe to store the context at the controller level. You'll need to override Dispose to clean it up.
C#
public class YourController : ApiController
{
    public YourController()
    {
        Context = new AppDevSecEntities();
    }
    
    private AppDevSecEntities Context { get; }
    
    protected override void Dispose(bool disposing)
    {
        base.Dispose(disposing);
        if (disposing) Context.Dispose();
    }
    
    public List<UserList> Get()
    {
        return Context.UserLists.AsNoTracking().OrderByDescending(x => x.LastName).ToList();
    }
}


NB: Since you're not updating the entities, it's a good idea to use the AsNoTracking method[^] to load them without tracking.
Entity Framework No-Tracking Queries[^]



"These people looked deep within my soul and assigned me a number based on the order in which I joined."
- Homer


General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.