加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – 在MVC应用程序的实体框架中共享objectcontext

发布时间:2020-12-16 09:48:29 所属栏目:asp.Net 来源:网络整理
导读:我正在开发一个ASP.NET MVC应用程序(使用Entity Framework1.0的Microsoft .NET Framework版本3.5 SP1).我的 MySQL数据库中有大约30个表.到目前为止,我已经创建了10个Model类.我在所有模型中都有一个dataentity实例. 样本模型类: using System;using System.
我正在开发一个ASP.NET MVC应用程序(使用Entity Framework1.0的Microsoft .NET Framework版本3.5 SP1).我的 MySQL数据库中有大约30个表.到目前为止,我已经创建了10个Model类.我在所有模型中都有一个dataentity实例.

样本模型类:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace MyProj.Models
{
    public class SSDModel
private ddms_dataEntities2 db = new ddms_dataEntities2();

public ssd searchbyId(string id)
        {
            return db.ssd.FirstOrDefault(d => d.ssd_id_text == id);
        }

 public void add(ssd item)
        {
            db.AddTossd(item);
        }
}

当我尝试通过实例化SSDModel的对象从另一个模型类访问方法searchbyId()时,我得到了一个异常 – objectcontext没有被共享.

我试图找出在模型类之间共享对象上下文的最佳方法.我确实通过SO和其他网站寻找解决方案.我理解最好的方法之一是每个HttpRequest有一个对象上下文.但是,我在网上找到的所有内容都与实体框架4.0有关.我不想将应用程序迁移到另一个版本.

请建议我可以参考的好的文档/博客/示例应用程序.这是我的第一个MVC应用程序,任何帮助将不胜感激.

谢谢

解决方法

您可以在创建SSDModel对象时将Context传递给构造函数,

public class SSDModel
       private ddms_dataEntities2 db;

       public SSDModel(ddms_dataEntities2  context){
          db=context;
       }

       public ssd searchbyId(string id)
        {
            return db.ssd.FirstOrDefault(d => d.ssd_id_text == id);
        }

        public void add(ssd item)
        {
            db.AddTossd(item);
        }
}

当你要初始化sevaral模型类时,只需创建一个上下文并为所有构造函数传递它.

var ddms_dataEntities2 db = new ddms_dataEntities2();
SSDModel ssd=new SSDModel(db);
OtherModel other=OtherModel(db);

保持每个请求的上下文的一种简单方法是here
否则你可以使用IOC containers.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读