ASP.NET MVC 6 - Entity Framework 7の主キーにNOT NULLを割り当てる

asp.net asp.net-core-mvc c# entity-framework-core

質問

コード:

migrationBuilder.AddPrimaryKey("AspNetRoles", "PK_AspNetRoles", new[] { "Id" }, isClustered: true);

Cannot define PRIMARY KEY constraint on nullable column in table 'AspNetRoles'.というエラーメッセージが表示されCannot define PRIMARY KEY constraint on nullable column in table 'AspNetRoles'.

MigrationBuilderの名前空間 - Microsoft.Data.Entity.Relational.Migrations.Builders

ASP.NET MVC 6で上記のコードにNOT NULLを割り当てる方法

人気のある回答

いくつかのコードファーストEFエンティティを記述して進めるための一時的な回避策として、これらのキーを扱うマイグレーションスクリプトの部分をコメントアウトしました。

明らかに、このユーザーはASP.NETユーザーとロールテーブルの関係を把握しており、長期的な解決策ではありません。固定されているか、誰かがある時点で本当の解決策を見つけるだろうと思います。

私がコメントした行のいくつか(ロールを変更しても、ユーザーと同じエラーが出ました)。

        //migrationBuilder.AddPrimaryKey("AspNetRoles", "PK_AspNetRoles", new[] { "Id" }, isClustered: true);

        //migrationBuilder.AddPrimaryKey("AspNetUsers", "PK_AspNetUsers", new[] { "Id" }, isClustered: true);
        ....
        //migrationBuilder.AddForeignKey(
        //    "AspNetRoleClaims",
        //    "FK_AspNetRoleClaims_AspNetRoles_RoleId",
        //    new[] { "RoleId" },
        //    "AspNetRoles",
        //    new[] { "Id" },
        //    cascadeDelete: false);

        //migrationBuilder.AddForeignKey(
        //    "AspNetUserClaims",
        //    "FK_AspNetUserClaims_AspNetUsers_UserId",
        //    new[] { "UserId" },
        //    "AspNetUsers",
        //    new[] { "Id" },
        //    cascadeDelete: false);

        //migrationBuilder.AddForeignKey(
        //    "AspNetUserLogins",
        //    "FK_AspNetUserLogins_AspNetUsers_UserId",
        //    new[] { "UserId" },
        //    "AspNetUsers",
        //    new[] { "Id" },
        //    cascadeDelete: false);
        ...
        //migrationBuilder.DropForeignKey("AspNetRoleClaims", "FK_AspNetRoleClaims_AspNetRoles_RoleId");

        //migrationBuilder.DropPrimaryKey("AspNetRoles", "PK_AspNetRoles");

        //migrationBuilder.AddForeignKey(
        //    "AspNetRoleClaims",
        //    "FK_AspNetRoleClaims_AspNetRoles_RoleId",
        //    new[] { "RoleId" },
        //    "AspNetRoles",
        //    new[] { "Id" },
        //    cascadeDelete: false);

        //migrationBuilder.AddForeignKey(
        //    "AspNetUserLogins",
        //    "FK_AspNetUserLogins_AspNetUsers_UserId",
        //    new[] { "UserId" },
        //    "AspNetUsers",
        //    new[] { "Id" },
        //    cascadeDelete: false);

これはおそらく、EF7の非常に初期のビルドでのバグや欠けている機能でしょうか?



Related

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