标签: ef-migrations

Entity Framework迁移器的连接

使用Entity Framework 5.0,我试图在我的MVC站点的启动例程中手动迁移我的代码优先数据库.为此,我首先创建一个DbContext实例,然后运行以下代码:

var migrator = new MigrateDatabaseToLatestVersion<DataContext, Configuration>();
migrator.InitializeDatabase(this.dataContext);
Run Code Online (Sandbox Code Playgroud)

我假设与dataContext的连接关联的数据库将是迁移的数据库.尽管事实并非如此.相反,它总是尝试在本地SQLExpress实例上迁移数据库.

MigrateDatabaseToLatestVersion构造函数存在重载,它接受数据库连接字符串名称,但我的项目使用的是Azure,并且不使用标准的ConnectionStrings配置部分.理想情况下,我只是传递一个连接字符串,我可以使用它.这可能吗?

entity-framework ef-code-first ef-migrations

2
推荐指数
1
解决办法
1515
查看次数

为什么我无法将实体框架迁移到初始状态?

我从项目中删除了开发数据库和Migrations文件夹.使用单元测试运行时,将重新创建项目开发数据库.我不明白为什么运行update-database给了我

PM> Update-Database
Specify the '-Verbose' flag to view the SQL statements being applied to the target database.
Applying code-based migrations: [201302201840012_wieleDoWielu].
Applying code-based migration: 201302201840012_wieleDoWielu.
Run Code Online (Sandbox Code Playgroud)

为什么要迁移:201302201840012_wieleDoWielu会被记住?我该如何删除它?存放在哪里?

最好的问候PrzemysławStaniszewski

entity-framework ef-migrations entity-framework-5

2
推荐指数
1
解决办法
5194
查看次数

在mvc中启用自动迁移

我正在创建一个MVC应用程序,我经常添加新类.由于类彼此相关并且已经创建的表中的测试数据没有意义,我更喜欢使用AutomaticMigrations.

我使用以下命令将数据库设置为初始状态.

Update-Database –TargetMigration: $InitialDatabase
Run Code Online (Sandbox Code Playgroud)

但问题是它总是不起作用.它出错的可能原因是什么?我不熟悉Code First Migrations.

在运行时声明DbContext已更改时,通常会抛出该错误.在启用迁移之前,我确保现有表中没有与已删除表的依赖关系.我也收到一个错误

Either the parameter @objname is ambiguous or the claimed @objtype (COLUMN) is wrong.
Run Code Online (Sandbox Code Playgroud)

我正在寻找有关该主题的一般帮助.

asp.net-mvc entity-framework database-migration ef-migrations

2
推荐指数
1
解决办法
1万
查看次数

自定义ASP.NET Core标识表

当人在asp.net core 2中自定义Identity类时,表之间的关系不会自动创建。

如何以最简单的方式在表之间创建关系?

用户类别:

public class User : IdentityUser<int>
{
    // codes
}
Run Code Online (Sandbox Code Playgroud)

角色类别:

public class Role : IdentityRole<int>
{
    public Role() : base()
    {

    }
    public Role(string roleName) : base(roleName)
    {

    }
}
Run Code Online (Sandbox Code Playgroud)

RoleClaim类:

public class RoleClaim : IdentityRoleClaim<int> { }
Run Code Online (Sandbox Code Playgroud)

UserClaim类:

public class UserClaim : IdentityUserClaim<int> { }
Run Code Online (Sandbox Code Playgroud)

UserLogin类:

public class UserLogin : IdentityUserLogin<int> { }
Run Code Online (Sandbox Code Playgroud)

UserRole类:

public class UserRole : IdentityUserRole<int> { }
Run Code Online (Sandbox Code Playgroud)

UserToken类:

public class UserToken : IdentityUserToken<int> { }
Run Code Online (Sandbox Code Playgroud)

表之间没有关系的自定义标识

我希望与我的表之间的这种关系相同:

默认身份表

asp.net ef-migrations asp.net-identity asp.net-core asp.net-core-2.0

2
推荐指数
1
解决办法
2182
查看次数

尝试在Visual Studio v15.8.4中的Entity Framework v6.2.0中迁移数据库时发生异常

我每次尝试添加迁移或更新数据库时都使用Entity Framework,代码先建立数据库,然后收到以下错误消息

PM> update-database
Exception calling "CreateInstance" with "7" argument(s): "Constructor on type 'System.Data.Entity.Migrations.Utilities.DomainDispatcher' not found."
At D:\WTS Projects\ModelCalibration\packages\EntityFramework.6.2.0\tools\EntityFramework.psm1:783 char:5
+     $dispatcher = $utilityAssembly.CreateInstance(
+     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
    + FullyQualifiedErrorId : MissingMethodException

System.NullReferenceException: Object reference not set to an instance of an object.
at System.Data.Entity.Migrations.MigrationsDomainCommand.WriteLine(String message)
at System.Data.Entity.Migrations.UpdateDatabaseCommand.<>c__DisplayClass2.<.ctor>b__0()
at System.Data.Entity.Migrations.MigrationsDomainCommand.Execute(Action command)
Object reference not set to an instance of an object.
Run Code Online (Sandbox Code Playgroud)

我已将项目复制到具有相同版本的Visual Studio,Entity Framework和Windows的另一台计算机上,并且能够完全迁移数据库。我还在两台计算机上的这些文档上下载了示例项目,并且在这台计算机上遇到了相同的异常,但是另一台也没有问题,因此我认为这与我的代码无关。

唯一的我已经能够找到的解决方案是在这个线程在这里,这里的解决办法是重新安装它,我不那么热衷做的窗户。

我还尝试了其他类似SO文章中所说的所有内容,例如尝试在EF 4.3.1中启用迁移(即要重新安装Entity …

c# entity-framework database-migration ef-migrations entity-framework-6

2
推荐指数
1
解决办法
541
查看次数

EF CodeFirst - 在数据库创建后创建索引

我正在将我的项目从数据库优先迁移到代码优先.

实体框架做了一些很好的工作来创建我的新数据库(应该模仿旧的数据库).
我正在使用数据注释和流畅的API组合来描述我的表.

我的数据库有一些索引,我也希望实体框架能够创建它们.看来,执行此操作的旧方法是定义自己的初始化程序并使用自定义T-SQL.

但是现在我们有了EF迁移,它应该更容易实现.
我似乎无法弄清楚如何将CreateDatabaseIfNotExists <>与自动迁移相结合来创建索引.我尝试使用MigrateDatabaseToLatestVersion <,>但在创建数据库后似乎没有执行迁移.

现在我们有Entity Framework 4.3,在数据库创建上创建索引和约束的正确方法是什么?

indexing entity-framework code-first ef-migrations

1
推荐指数
1
解决办法
1585
查看次数

实体框架代码优先迁移NOCHECK约束?

是否可以使用nocheck约束在代码优先迁移中更改表?除了通过Update-Database -Script并修改sql语句获取SQL脚本外,我没有找到任何其他方法。

asp.net-mvc entity-framework ef-migrations

1
推荐指数
1
解决办法
2583
查看次数

启用迁移后,项目无法构建

辅助信息:我正在遵循有关复数视力的MVC 4课程问题:我有一个ASP.NET MVC4 Internet应用程序。一切都如本书所述,但enable-migrations进入软件包管理器控制台后出现错误:The project 'somesite.web' failed to build

我死了吗?

asp.net-mvc-4 ef-migrations entity-framework-5

1
推荐指数
1
解决办法
4102
查看次数

未知的CS1003错误

我无法为超过特定点的实体框架中的代码优先迁移而编译我的项目。我正在从xml中读取值以填充表。我有以下代码:

        //EnrolmentProgramStartDate

        var programQuery = from r in context.EnrolmentPrograms
                           select r;

        var programList = programQuery.ToList<Entities.MetaData.Enrolment.EnrolmentProgram>();

        resourceName = "LearnLogicElicos_WebApi.SeedData.MetaData.Enrolment.enrolment_program_start_date.xml";
        stream = assembly.GetManifestResourceStream(resourceName);
        xml = XDocument.Load(stream);
        List<Entities.MetaData.Enrolment.EnrolmentProgramStartDate> enrolmentStartdates = new List<Entities.MetaData.Enrolment.EnrolmentProgramStartDate>();

        foreach (var e in xml.Root.Elements("StartDate"))
        {
            DateTime.TryParse((string)e.Element("Start"), out var startDate);

            enrolmentStartdates.Add(new Entities.MetaData.Enrolment.EnrolmentProgramStartDate()
            {
                PrgmCode = (string)e.Element("ProgramCode"),
                StartDate = startDate
            });
        }

        var programStartdateWithFk = (from t1 in enrolmentStartdates
                                      join t2 in programList
                                      on t1.PrgmCode equals t2.PrgmCode
                                      select new Entities.MetaData.Enrolment.EnrolmentProgramStartDate
                                      {
                                          PrgmCode = t1.PrgmCode,
                                          StartDate = t1.StartDate,
                                          EnrolmentProgramFk = t2.PrgmPk
                                      });

        context.EnrolmentProgramStartDates.AddRange(programStartdateWithFk); …
Run Code Online (Sandbox Code Playgroud)

c# entity-framework ef-migrations

1
推荐指数
1
解决办法
1202
查看次数

Add-Migration或dotnet ef迁移添加

从体系结构的角度来看:

  • 这些命令如何相同或不同?
  • 什么时候应该使用?
  • 哪个更好?

ef-migrations .net-core

1
推荐指数
1
解决办法
2474
查看次数