2015-02-26 20 views
6

Code:ASP.NET MVC 6 - Gán NOT NULL vào Primary Key trong Entity Framework 7

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

Tôi nhận được thông báo lỗi như Cannot define PRIMARY KEY constraint on nullable column in table 'AspNetRoles'.

Namespace của MigrationBuilder - Microsoft.Data.Entity.Relational.Migrations.Builders

Cách chỉ định NOT NULL cho mã ở trên trong ASP.NET MVC 6

+0

Tôi giả sử bạn đang sử dụng cách tiếp cận mã đầu tiên? –

+0

Vâng, đây là phương pháp tiếp cận mã đầu tiên. Tôi đang theo dõi từ [this] (http://www.asp.net/vnext/overview/aspnet-vnext/vc#efm) bài viết – user01928374655647382910019283

+0

Bạn đã thấy http://stackoverflow.com/questions/18907411/entering- phím-bằng tay-với-thực thể-khuôn khổ? –

Trả lời

0

Để có rất tạm thời cách giải quyết để có thể viết một số thực thể EF đầu tiên mã và tiến lên, tôi đã nhận xét phần của tập lệnh di chuyển đối phó với các khóa đó. Rõ ràng đây là những mối quan hệ trong bảng người dùng và vai trò ASP.NET và không phải là một giải pháp dài hạn khả thi, tôi cho rằng nó sẽ được sửa chữa hoặc ai đó sẽ tìm thấy một giải pháp thực sự tại một số điểm.

Một số dòng tôi đã nhận xét (Tôi nhận được lỗi tương tự với Người dùng khi tôi thay đổi Vai trò).

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

Đây có lẽ là lỗi hoặc thiếu tính năng trong quá trình xây dựng rất sớm của EF7?

Các vấn đề liên quan