Tôi đã tạo Mô hình khung thực thể dựa trên cơ sở dữ liệu hiện có. Khung thực thể đang sử dụng Trình tạo DbContext ADO.NET.MVC3/Razor Thêm bộ điều khiển "Get-PrimaryKey" không tìm thấy khóa chính
Tôi cũng đã tạo một dự án MVC3/Razor đang sử dụng DLL từ dự án đầu tiên. Khi tôi bấm vào tùy chọn "Add -> điều khiển" và điền thông tin vào các trường bắt buộc tôi nhận được một lỗi gây phiền nhiễu:
Scaffolding GroupController...
EMR_MasterEntities already has a member called 'Groups'. Skipping...
Get-PrimaryKey : Cannot find primary key property for type 'CHS.CCC.DataModel.Group'. No properties appear to be primar
y keys.
At C:\Users\adriangilbert\Desktop\CHS.Monitor\packages\MvcScaffolding.1.0.6\tools\Controller\MvcScaffolding.Controller.
ps1:74 char:29
+ $primaryKey = Get-PrimaryKey <<<< $foundModelType.FullName -Project $Project -ErrorIfNotFound
+ CategoryInfo : NotSpecified: (:) [Get-PrimaryKey], Exception
+ FullyQualifiedErrorId : T4Scaffolding.Cmdlets.GetPrimaryKeyCmdlet
Để làm được việc này, tôi cần phải đi đến các Groups.cs đã được tạo ra bởi Visual Studio và thêm 'using System.ComponentModel.DataAnnotations;' và sau đó thêm [Key] vào khai báo trường Groups. Tuy nhiên, đây là mã được tạo. Nếu tôi biên dịch lại Dự án khung thực thể, tất nhiên thay đổi của tôi sẽ bị mất.
Vì vậy, - Câu hỏi của tôi là:
Am tôi làm sai điều gì đó gây ra Visual Studio để không thể tìm ra những gì các lĩnh vực chủ chốt là, hoặc là này chỉ là một lỗi với Bộ luật giàn giáo đó là ngăn không cho nó phát hiện ra rằng Key là.
Tôi nên đề cập rằng điều này chỉ thất bại với khóa chính dựa trên chuỗi. Nếu trường đã được khai báo là một số nguyên, thì mọi thứ hoạt động hoàn hảo.
Dưới đây là bảng có vấn đề:
CREATE TABLE [dbo].[Groups](
[group_name] [varchar](45) NOT NULL,
[dbname] [varchar](45) NOT NULL,
[user] [varchar](45) NULL,
[CompatibilityVersion] [nvarchar](20) NULL,
...
PRIMARY KEY CLUSTERED ([group_name] ASC)
) ON [PRIMARY]
Dưới đây là môi trường của tôi:
Bạn đã chỉ định thực thể của mình bằng cách nào? – cpoDesign