我正在将Code-First应用于MS SQL Server 2012中的现有数据库。我已经完成了:右键单击项目 - >添加项目 - > ADO.net实体数据模型 - > Code-First来自数据库。这样,数据库中的所有表都将导入到我的Web API项目中。
然后,在this博文后,我跳过了第1步和第2步。 2并成功进入第3步。然后在第4步,因为我正在做一个新项目,而不是从Database-First迁移项目;而不是创建一个新的类设置数据库初始化程序,有人建议我把这个片段放在我的DbContext类的构造函数中:
Database.SetInitializer(new MigrateDatabaseToLatestVersion<Migrations.Configuration, WorkflowDbContext>());
这是在我将代码实现到我的DbContext类之后:
Partial Public Class DbContext1
Inherits DbContext
Public Sub New()
MyBase.New("name=DbContext1")
Database.SetInitializer(New MigrateDatabaseToLatestVersion(Of Migrations.Configuration, DbContext1))
End Sub
但是当我这样做时,上面代码中关键字的错误,我总结如下:
- SetInitializer:“类型参数'配置'不会继承或实现约束类型'DbContext'。”
- Migrations.Configuration:“类型参数'配置'不会继承或实现约束类型'DbContext'。”
- DbContext1:“类型参数'DbContext1'不继承或实现约束类型'DbMigrationsConfiguration(Of Configuration)'。”
现在,我正在修改(添加外键和导航属性)使用EF-code-first从数据库自动导入的模型类。这是我现在面临的问题的原因吗?
有人能指出我应该做些什么来修补问题吗?
P / S:
答案 0 :(得分:0)
将MigrateDatabaseToLatestVersion(Of Migrations.Configuration,DbContext1)更改为MigrateDatabaseToLatestVersion(Of DbContext1,Migrations.Configuration)) 我认为你颠倒了类型论证的顺序