web api dbcontext.add从AccountController类调用dispose()

时间:2018-02-14 20:20:10

标签: c# .net asp.net-web-api

我有一个AccountController类来处理POST请求并创建db repository class

的对象
        VoiceChatServiceRepository db = new VoiceChatServiceRepository();

        userDataModel.Avatar = DefaultLogo;
        userDataModel.Id = user.Id;
        userDataModel.FriendList = "";

        db.Add(userDataModel);

VoiceChatServiceRepository类包含:

    private VoiceChatServiceContext db = new VoiceChatServiceContext();

    public IEnumerable<UserDataModel> GetAll()
    {
        return db.UserDataModels;
    }

    public void Add(UserDataModel userDataModel)
    {
        db.UserDataModels.Add(userDataModel);   <-- Here is a problem
        db.SaveChanges();
    }

我的问题是我无法弄清楚为什么db.UserDataModels.Add(userDataModel)调用

    protected override void Dispose(bool disposing)
    {
        if (disposing && _userManager != null)
        {
            _userManager.Dispose();
            _userManager = null;
        }

        base.Dispose(disposing);
    }
来自AccountController类的

我得到一个&#34;内部服务器错误&#34;。

我的配置:

        var container = new UnityContainer();
        container.RegisterType<IVoiceChatServiceRepository, VoiceChatServiceRepository>(new HierarchicalLifetimeManager());
        config.DependencyResolver = new UnityResolver(container);

P.S。我遵循本指南https://docs.microsoft.com/en-us/aspnet/web-api/overview/advanced/dependency-injection来保护我的代码免受DI

的影响

调用堆栈: enter image description here

1 个答案:

答案 0 :(得分:0)

解决!问题出在db连接字符串(未使用的“附加”* .mdf文件)。