Entity Framework 7:匿名型は同じ名前の複数のプロパティを持つことはできません

entity-framework entity-framework-core

質問

過去には私は問題(持っていた123の開発マシン間で交換する際にEntity Frameworkのでは)ので、私は物事を簡単だったかどうかを確認するためにEntity Frameworkの7 RC1更新1でシンプルなランニングアップと-何かを取得したいです。

Azureデータベースをローカルにコピーした後、DNXコマンドを使用しました

dnx ef dbcontext scaffold "Server=MYDESK;Database=mydatabase;Trusted_Connection=True;" EntityFramework.MicrosoftSqlServer --outputDir Models

これにより、データモデルクラスとコンテキストクラスが作成されました。私はそれをチェックして、別のマシンにスワップしてコードをチェックアウトしました。新しいマシンでは、Entity Framework 7で生成されたコードにエラーが発生します。

protected override void OnModelCreating(ModelBuilder modelBuilder)
{
    modelBuilder.Entity<Items>(entity =>
    {
        entity.ToTable("Items", "myapi");

        entity.HasIndex(e => new { e.CreatedAt, e.CreatedAt, e.CreatedAt, e.CreatedAt }).HasName("IX_CreatedAt");

その最終行のビルドエラーは、 "匿名型は同じ名前の複数のプロパティを持つことはできません"です。 Entity Framework 7でビルドされないコードが生成され、どうすれば修正できますか

受け入れられた回答

これは既知のバグのようです: SQL Serverのスカッフォールディングは 、「名前は同じだが異なるテーブルにあるインデックスの競合」により、 インデックス(rc1-final)#3847​​の無効な匿名タイプを生成します 。最近のコミットでは、マイルストーンEntity Framework 7 RC2ロードマップ )に修正されています。


人気のある回答

エラーはクリアです。同じ名前の複数のプロパティを持つことはできません...最後の行を以下に変更してください:

    entity.HasIndex(e => new { 
                     CreatedAt = e.CreatedAt, 
                     Name2 = e.CreatedAt, 
                     Name3 = e.CreatedAt, 
                     Name4 = e.CreatedAt }).HasName("IX_CreatedAt");


Related

ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ
ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ