小编Chr*_*ris的帖子

DropCreateDatabaseIfModelChanges EF6导致System.InvalidOperationException:支持上下文的模型已更改

迁移到Entity Framework 6后,在构建服务器上执行单元测试时出错.

我正在使用DropCreateDatabaseIfModelChanges初始化程序.当我改变它的MigrateDatabaseToLatestVersion一切正常,但我想坚持使用前初始化器.

我得到的错误是:

System.InvalidOperationException:System.InvalidOperationException:自创建数据库以来,支持"AppContext"上下文的模型已更改.考虑使用Code First Migrations更新数据库(http://go.microsoft.com/fwlink/?LinkId=238269).

哪个是正确的,它改变了,但是对于DropCreateDatabaseIfModelChanges初始化程序,它应该被重新创建.有任何想法吗?

EF在App.config中配置.这是相关部分:

<connectionStrings>
    <add name="AppContext" connectionString="Data Source=(localdb)\v11.0;Initial Catalog=my.app.unittest;Integrated Security=True" providerName="System.Data.SqlClient" />
</connectionStrings>
<entityFramework>
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
        <parameters>
            <parameter value="v11.0" />
        </parameters>
    </defaultConnectionFactory>
    <contexts>
        <context type="my.app.core.Data.AppContext, my.app.core">
            <databaseInitializer type="System.Data.Entity.DropCreateDatabaseIfModelChanges`1[[my.app.core.Data.AppContext, my.app.core]], EntityFramework" />
        </context>
    </contexts>
    <providers>
        <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
    </providers>
</entityFramework>
Run Code Online (Sandbox Code Playgroud)

.net c# entity-framework entity-framework-6

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

强大的PFX命名

我正在尝试使用也用于数字签名的PFX文件来强制命名程序集.PFX证书具有CodeSigning选项,由CA提供.

当我尝试使用它时,我收到以下错误:

错误MSB3325:无法导入以下密钥文件:myCert.pfx.密钥文件可能受密码保护.要更正此问题,请尝试再次导入证书,或使用以下密钥容器名称手动将证书安装到强名称CSP:VS_KEY_B763CB2413AC1708

我试图删除它并使用重新安装PFX

sn -d VS_KEY_B763CB2413AC1708
sn -i myCert.pfx VS_KEY_B763CB2413AC1708
Run Code Online (Sandbox Code Playgroud)

但那没用.我试图将证书放在证书库中 - 这也没有改变一件事.我试图以管理员身份运行Visual Studio以及从命令行执行MSBuild.

我还尝试使用本地生成的证书(有效)延迟签署程序集,然后使用它重新签名

sn -R myAssembly.dll myCert.pfx
Run Code Online (Sandbox Code Playgroud)

然后我收到以下错误:

Failed to re-sign the assembly -- Keyset does not exist
Run Code Online (Sandbox Code Playgroud)

我在使用Visual Studio项目设计器的签名页,签名程序集的ClickOnce Manifest签名和强名称程序集签名中找到了代码签名证书的要求.看起来他们都满足了,但我可能会错过一些东西.我该如何解决这个问题?

.net code-signing pfx

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

为什么解析区域设置日期字符串会导致无效日期?

有人可以解释为什么以下代码片段会导致无效的日期对象吗?

new Date(new Date().toLocaleString())
// or
Date.parse(new Date().toLocaleString())
Run Code Online (Sandbox Code Playgroud)

javascript date

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

如何在EF 7 alpha中添加外键

如何在EF 7 alpha3中建立一对一的关系?

仅定义导航属性的旧方法不起作用,并且modelBuilder没有以前使用的HasRequired/HasOptional方法.

任何人都可以对此有所了解吗?

entity-framework-core

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

javascript自执行函数 - 不同的语法

我见过两个版本的自执行javascript函数:

(function() { ... })()
Run Code Online (Sandbox Code Playgroud)

(function() { ... }())
Run Code Online (Sandbox Code Playgroud)

注意函数执行"()"的不同位置

这两者有区别吗?

javascript syntax

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

可选组的正则表达式

我想解析以下示例字符串

foo :6
Run Code Online (Sandbox Code Playgroud)

分为两组:文本和数字.仅当字符":"位于数字本身之前时,才应填充数字组.

所以:

foo 6 -> Text = "foo 6"
foo :6 -> Text = "foo", Number = "6"
Run Code Online (Sandbox Code Playgroud)

到目前为止我能想到的最好的是

(?<Text>.+)(?=:(?<Number>\d+)h?)?
Run Code Online (Sandbox Code Playgroud)

但这不起作用,因为第一组贪婪地扩展到整个字符串.

有什么建议?

.net c# regex

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