- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 MVC4 Web 项目,并使用 CaSTLe Windsor 作为我的 DI 容器。另外,我正在使用 Entity Framework 来访问 SQL 数据库。我想将我的 Lifestyle 设置为 PerWebRequest,但是,当我这样做时,我收到以下错误:“操作无法完成,因为 DbContext 已被释放”。
如果我使用 transient 生活方式,则会绕过该错误,但它会引入 Entity Framework 的一系列新问题。如何保持 PerWebRequest 生活方式,但在调用 dispose 方法时保持正确?
我正在使用构造函数注入(inject)向我的存储库传递连接字符串以构建新的上下文。我还实现了 IDisposable。见下文:
public class MySqlRepository : MyRepository, IDisposable
{
private readonly DbContext _context;
public MySqlRepository(string connectionString)
{
_context = new DbContext(connectionString);
}
protected virtual void Dispose(bool disposing)
{
if (disposing)
{
_context.Dispose();
}
}
public void Dispose()
{
Dispose(true);
}
}
最佳答案
这应该不是问题。我曾经遇到过这个问题,原因是我的容器设置不正确。
这是一个使用温莎城堡的演示。
容器的设置如下:
container = new WindsorContainer();
container.Register(Classes.FromThisAssembly().BasedOn<Controller>().LifestylePerWebRequest());
container.Register(Classes.FromThisAssembly().InNamespace("MvcIoCDemo.Models").WithServiceDefaultInterfaces().LifestylePerWebRequest());
Controller :
public class ProductsController : Controller
{
private readonly IProductRepository productRepository;
public ProductsController(IProductRepository productRepository)
{
if (productRepository == null) throw new ArgumentNullException("productRepository");
this.productRepository = productRepository;
}
存储库:
public class ProductRepository : IDisposable, IProductRepository
{
private readonly DemoDbContext context;
public ProductRepository()
{
context = new DemoDbContext();
}
在此处查看演示项目: https://github.com/kobbikobb/MvcIoCDemo
关于asp.net-mvc-4 - 依赖注入(inject) - 即将调用 EF 存储库 Dispose 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17367322/
我是一个非常基础的 git 用户;我基本上只使用命令 git add -a(修改后添加文件)然后 git commit -m "what I did" 然后 git push (将其推送到我的服务器)
我有两个用户选择的日期:开始日期和结束日期。它们是 NSDate 实例,我必须将它们作为 NSNumber 的参数发送。如何以秒为单位将它们转换为 NSNumber? 最佳答案 使用下面的代码: N
我正在构建一个应用程序,用户可以在其中无限次操作 svg 对象(例如图像),即旋转和缩放它们。我使用 Raphael.js 来处理 SVG。 如何在应用新转换之前将对象“重置”到其初始状态,以便新转换
我想在调用我的应用程序中的函数时进行记录。有没有一种方法可以监听调用的函数并在此类事件上运行代码? 如果是这样,我从哪里开始研究如何做到这一点? 最佳答案 只需将日志记录直接插入到您想要的位置即可。
void main() { char c; int op; int a=10,b=20,sum; scanf("%c",&c); if(c=='+')
我正在尝试使用 H2 进行集成测试。我希望 H2 数据库在每次测试之间重置为我的 data.sql 。但在建议的解决方案中,我还没有发现有效; @Transactional 和 @DirtiesCon
这个问题在这里已经有了答案: Tokenizing a String but ignoring delimiters within quotes (13 个回答) 关闭6年前。 如何将String按空
我在我的项目中有一个要求,我们有一些输入框,我们应该输入时间。 时间可以以任何格式输入,即 12:30a 或 1230 或 1430 或 14:30 . 以1230 或 1430 格式输入的计时问题是
我对 Jquery UI Resizable 功能有疑问。 我正在使用 Jquery resizable 将 div 调整为不同的宽度和高度。它运行良好,但是当我尝试将高度降低到一个非常低的数字时,它
我刚刚读了an article其中指出: Internet domain addresses opened up to wave of new suffixes Internet naming boa
我有一个对象列表,比方说 List类 Example 有一个成员 a,它是一个字符串: class Example { String a; String b; } 现在我想从List得
假设我有一个只有两列的表格:姓名 和心情。一行包含一个人的名字和他们的心情,如果他们有多种心情,那么多行存储在数据库中。 例如,在数据库中是约翰,他很高兴、兴奋和自豪。 这表示为 John Happy
对于从 (-x 或 0) -> 无穷大的积分,我在 MATLAB 的 quadgk 和 Python 的 quad 例程之间得到不一致的结果。我相信 MATLAB 版本是正确的(基于将 flag 参数
我非常想知道如何修改现有的 LINQ 函数以添加 Func TResult到函数签名,即允许它使用选择器,如 (o => o.CustomField) . 例如,在 C# 中,我可以使用 .IsDis
我是一名优秀的程序员,十分优秀!