Adr*_*ian 6 primary-key entity-framework-4.1 asp.net-mvc-3 dbcontext asp.net-mvc-scaffolding
我已经基于现有数据库创建了一个实体框架模型.实体框架正在使用ADO.NET DbContext Generator.
我还创建了一个使用第一个项目的DLL的MVC3/Razor项目.当我单击"添加 - >控制器"选项并填写必填字段时,我收到一个恼人的错误:
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
Run Code Online (Sandbox Code Playgroud)
为了解决这个问题,我需要转到Visual Studio生成的Groups.c并添加'using System.ComponentModel.DataAnnotations;' 然后将[Key]添加到Groups字段的声明中.但是这是生成的代码.如果我重新编译实体框架项目,我的更改当然会丢失.
所以 - 我的问题是:
我做错了什么导致Visual Studio无法弄清楚Key字段是什么,或者这只是Scaffolding Code的一个错误,它阻止它弄清楚Key是什么.
我应该提一下,这只能通过基于字符串的主键失败.如果该字段已被声明为整数,那么一切都完美无缺.
这是有问题的表格:
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]
Run Code Online (Sandbox Code Playgroud)
这是我的环境:
| 归档时间: |
|
| 查看次数: |
1427 次 |
| 最近记录: |