小编Vin*_*els的帖子

MigrateDatabaseToLatestVersion未执行

我无法弄清楚为什么我的最新迁移没有在应用程序启动时自动执行(或者至少在首次访问数据库上下文时).我曾经在开发中手动运行update-database,但我想测试它是否会在托管测试环境中自动升级.

在Application_Start()中:

Database.SetInitializer<FepazoContext>(
    new MigrateDatabaseToLatestVersion<FepazoContext, FepazoConfiguration>())
Run Code Online (Sandbox Code Playgroud)

在FepazoConfiguration中:

internal sealed class FepazoConfiguration : 
    DbMigrationsConfiguration<Fepazo.Models.FepazoContext>
{
    public FepazoConfiguration()
    {
        AutomaticMigrationsEnabled = true;
    }
}
Run Code Online (Sandbox Code Playgroud)

我甚至将它添加到FepazoContext的构造函数中:

public FepazoContext() : base("DefaultConnection")
{
    Database.Initialize(false);
}
Run Code Online (Sandbox Code Playgroud)

一些额外的信息:

  • 迁移是通过添加迁移自动创建的,看起来不错.
  • 当我查询__MigrationHistory表时,我可以看到迁移尚未被"记录"为执行.
  • 我验证了初始化程序或AutomaticMigrationsEnabled设置未在Web.config文件中被覆盖.
  • FepazoContext构造函数中的断点FepazoConfiguration 正在受到打击.

我忘记了什么吗?我可以深入挖掘,找出它出错的地方吗?

更新

传递TrueDatabase.Initialize试图强行迁移也没有任何影响.Database.CompatibleWithModel(true)返回false - 因此系统检测到存在差异,但是它不执行挂起的迁移!

public FepazoContext() : base("DefaultConnection")
{
    if (!Database.CompatibleWithModel(true))
    {
        // This is executed (each time the code enters)
        Database.Initialize(true);
    }
}
Run Code Online (Sandbox Code Playgroud)

解决方法

作为一种解决方法,我 …

asp.net-mvc entity-framework database-migration ef-code-first

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

在 gitcherry-pick 期间,撤消对单个文件的更改,恢复到我的版本

我正在cherry-pick对多个文件进行大型提交。存在一些冲突,但对于某些冲突的文件,我确信我不需要任何更改。我只想恢复该提交中应用于这些文件的所有更改 - 有点像 svn 中的“使用我的解决方案”,或者git checkout <filename>撤消应用于文件的更改(这在这里似乎不起作用)。

是否有命令可以执行此操作,而无需手动检查这些文件中的差异?

FFR,请随意添加使用他们的解决方案的操作。

git merge-conflict-resolution git-cherry-pick git-merge-conflict

6
推荐指数
0
解决办法
2226
查看次数

Ngrx:订阅时未在主题中收到当前值

在一个组件中,我使用 store 为我的状态的某些部分订阅了一个 Subject。从那时起,当那部分状态发生变化时,我将开始接收更新,我的组件将反映此状态。到现在为止还挺好。

但是,我还希望我的组件根据此状态的当前值正确初始化。因此,一旦我订阅,我还希望发出当前值 - 例如,我的视图可以正确初始化。

使用 Angular 组件的示例:

my.component.ts

export class MyComponent implements OnInit {
  constructor(private store: Store<State>) { }

  // As soon as I subscribe, I want this to also emit the current
  // value, e.g. so my view can correctly reflect the current state.
  public mode$ = new Subject<ApplicationMode>();

  ngOnInit() {
    this.store.select(getApplicationState)
       .select(s => s.applicationMode).subscribe(this.mode$);
  }
}
Run Code Online (Sandbox Code Playgroud)

我的组件.html

{{ mode$ | async }}
Run Code Online (Sandbox Code Playgroud)

我相信我想要/期望的是我商店的这部分会返回 aBehaviorSubject或 a ReplaySubject(1)。但是从商店中选择任何东西总是会返回一个 …

rxjs behaviorsubject redux ngrx angular

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

EF 迁移忽略字符串属性上的 [Required] 属性并创建可为 null 的字段

我一定错过了一些微不足道的事情。我想这是我第一次遇到这种情况。

ApplicationUser : IdentityUser用一些基本数据扩展了我的课程。其中一些是必需的,一些是可选的。简化摘录:

public class ApplicationUser : IdentityUser
{
    [Required]
    public string FirstName { get; set; }

    [Required]
    public string LastName { get; set; }

    [Column(TypeName = "Date")]
    public DateTime? BirthDate { get; set; }

    public string NationalNumber { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

请注意,FirstNameLastName是必需的,NationalNumber不是。BirthDate, 存在nullable, 也不是。这会产生以下自动生成的代码:

CreateTable(
    "dbo.AspNetUsers",
    c => new
    {
        Id = c.String(nullable: false, maxLength: 128),
        UserName = c.String(),
        PasswordHash = c.String(),
        SecurityStamp = c.String(), …
Run Code Online (Sandbox Code Playgroud)

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

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