ASP.NET MVC 6 - Affectation de NOT NULL à la clé primaire dans Entity Framework 7

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

Question

Code:

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

Le message d'erreur suivant s'affiche: Cannot define PRIMARY KEY constraint on nullable column in table 'AspNetRoles'.

Espace de noms de MigrationBuilder - Microsoft.Data.Entity.Relational.Migrations.Builders

Comment affecter NOT NULL au code ci-dessus dans ASP.NET MVC 6

Réponse populaire

Pour que cette solution de contournement très temporaire permette d'écrire des entités EF dont le code est d'abord et avance, j'ai commenté la partie du script de migration qui traite de ces clés.

De toute évidence, cela détruit les relations dans les tables des rôles et des utilisateurs ASP.NET et n’est pas une solution viable à long terme. Je suppose que cela sera corrigé ou que quelqu'un trouvera une solution réelle à un moment donné.

Certaines des lignes que j'ai commentées (j'ai eu la même erreur avec les utilisateurs une fois que j'ai changé de rôle).

        //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);

Ceci est probablement un bug ou une fonctionnalité manquante dans la toute première version de EF7?



Related

Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow