asp.net-mvc-4 – 获取上下文是不可构建的.添加一个默认的构造函数或者提供一个IDbContextFacto
|
当我尝试使用代码优先迁移时,我收到此错误. 我的上下文有一个连接名称的构造函数. 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和ASP.Net之间共享登录系统
- 嵌套的ASP.NET’应用程序’在IIS内继承父配置值?
- 使用Ninject绑定WebApi过滤器属性
- asp.net-mvc – ASP.NET MVC2 – 自定义模型绑定器示例
- asp.net-mvc – 如何填充/验证您的ViewModels?
- asp.net-mvc – 使用LINQ进行动态查询将无法正常工作
- asp.net – FormsAuthentication:是否安全?
- asp.net-mvc-3 – ASP.NET MVC 3: – 使用数据库而不是资源
- asp.net-mvc – 将Ajax Jquery中的enum参数传递给MVC web a
- asp.net-mvc – 如何在我自己的自定义助手中使用ASP.NET MV
- asp.net – 使用codebehind显示隐藏div
- Asp.NET DropDownList在PostBack之后重置Selecte
- asp.net-mvc-4 – 如何配置MVC的样式捆绑顺序?
- asp.net – 配置部分不能在web.config文件中包含
- asp.net-mvc-5 – 如何添加声明在ASP.NET身份
- asp.net-mvc-4 – 基于角色的导航
- asp.net-mvc-3 – 修改StringLength验证的默认Er
- asp.net-mvc – ASP.NET MVC Validation将类添加
- asp.net-mvc – 使用ASP.NET MVC /实体框架对POC
- asp.net-mvc – 如何在Asp.Net MVC循环中呈现纯H
