asp.net-mvc-4 – 获取上下文是不可构建的.添加一个默认的构造函
当我尝试使用代码优先迁移时,我收到此错误.
我的上下文有一个连接名称的构造函数. public class VeraContext : DbContext,IDbContext { public VeraContext(string NameOrConnectionStringName = "VeraDB") : base(NameOrConnectionStringName) { } public IDbSet<User> Users { get; set; } public IDbSet<Product> Products { get; set; } public IDbSet<IntCat> IntCats { get; set; } } 当项目运行时,这个连接名称注入了ninject,我也将其指定为上述代码中的默认值,但这没有帮助. kernel.Bind<IDbContext>() .To<VeraContext>() .WithConstructorArgument("NameOrConnectionStringName","VeraDB"); 当我尝试使用“启用迁移”添加迁移时会抛出错误:
如果我从VeraContext中删除构造函数,它将会工作,而使用VeraData.EF.Infrastructure.VeraContext作为名称创建另一个数据库. 我假设ninject只在项目运行时传递连接字符串,而不是当我使用代码第一次迁移时.无论如何,我可以在使用代码首次迁移时注入/提供连接名称的默认值? 解决方法
基本上你需要一个默认的ctor(这是错误) – 但只是实现它会导致问题.
您必须实施IDbContextFactory才能使结果保持一致(或者您的代码迁移将无法正常工作).
这是基本的工厂… public class MyContextFactory : IDbContextFactory<MyContext> { public MyContext Create() { return new MyDBContext("YourConnectionName"); } } 你应该结合注射,注入和构造你的DbContext,如你所愿. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc-3 – 如何在razor视图中设置@ model.attribute
- asp.net-mvc – .NET MVC的简单OpenID身份验证代码
- asp.net-mvc – 多对多的ASP.NET MVC绑定
- asp.net – Gridview在列标题中排序/向下箭头
- 为什么这会考虑不好的做法?或者是吗? (ASP.Net)
- asp.net页面生命周期
- asp.net-mvc – Ext.NET没有与ASP.NET MVC 4集成
- asp.net-mvc – MVC Razor – 如何向自己提交表单
- asp.net-mvc – ASP.NET MVC NHibernate模型绑定
- asp.net-mvc – .net mvc仅当视图中有值时才在视图中显示
- ASP.NET Core 开源GitServer 实现自己的GitHub
- asp.net-mvc – 如何编写自定义的RegularExpress
- asp.net-mvc-4 – MVC4 MEF插件和控制器命名空间
- 免费开源asp.net文件管理器?
- asp.net – 为什么在IIS已经处理请求并发时使用异
- asp.net – 使用MvcBuildViews构建Razor = true失
- ASP.NET MVC从请求参数中删除双正斜杠
- asp.net – 谁负责处理HttpPostedFile.InputStre
- asp.net – 使用Repeater控件构建动态链接
- asp.net-mvc – 如何将索引应用于IEnumerable表达