entity framework 一个应用中应该是每次都new DbContext 销毁 ( helloworld_context.add(new helloworld()) ),还是一直复用同一个直到程序关闭,
在web中应该是每个request都可以重新new 一个,然后request结束销毁。当然将他弄成application生命周期也可以。但是似乎生命周期越长,问题肯定越多,但是会越方便。
我不知道该怎么做比较好,我现在是直接启动的时候new一个,然后一直使用这个来CRUD数据库当程序关闭的时候销毁,
其实也没销毁,因为不知道写在哪里。程序都关了,他自己也就不见了。
因为我这里就我一个人,我想问问大家一般怎么做,潜规则是怎么样的。
另外要感谢下微软提供的这个框架,我是从java的hibernate过来的。再之前是iBatis,那个苦啊,
从code first方面来微软做的更适合人的想法。就是支持mysql方面不知道哪个公司的原因,默认配置就出错。
每次都折腾好几个小时。莫名其妙就好了。似乎某个程序为了更智能化的配置,却有BUG,自动在增加某些配置导致的。
------解决思路----------------------
每次都new DbContext 销毁其实没有问题。因为并不是每次都创建连接,provider内部有连接池机制。
------解决思路----------------------
天啊,楼主该不会是在java那里的时候用hibernate就用单例,生命周期不完它就一直活着。
你们的程序经过测试吗?
------解决思路----------------------
每次创建没有问题,通常一般会一组操作(比如一个函数,或者批量修改一组数据等)使用一个objectcontext。搞成全局的,相当有问题,对于winform累的还好点。对于asp.net的程序,对显著的问题:不同请求之间共享context,有时候会串数据。(由于objectcontext本身就带缓存,A用户假设对数据执行了添加/修改,但没有savechanges,理论上B用户不应该看到,但共享context的话,就能看到了)