我有下表:
CREATE TABLE [dbo].[MyTable](
[timestamp] [timestamp] NOT NULL,
[Col1] [varchar](20) NOT NULL,
[Col2] [varchar](20) NOT NULL,
[col3] [datetime] NOT NULL,
[col4] [varchar](10) NOT NULL,
[Col5] [varchar](10) NOT NULL,
[Col6] [varchar](10) NOT NULL,
[Col7] [decimal](38, 20) NOT NULL,
[Col8] [decimal](38, 20) NOT NULL,
[Col9] [datetime] NOT NULL,
CONSTRAINT [MyTable$0] PRIMARY KEY CLUSTERED
(
[Col1] ASC,
[Col2] ASC,
[Col3] ASC,
[Col4] ASC,
[Col5] ASC,
[Col6] ASC,
[Col7] ASC
) WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, FILLFACTOR = 90) ON [Data Filegroup 1]
) ON [Data Filegroup 1]
我使用EF Generator来创建MyTable类,设置所有字段并保存更改。我收到以下错误:
只有商店生成的密钥 支持身份列。键 列'Col2'有类型 'sqlServer.varchar',它不是 标识列的有效类型。
我不明白为什么它认为它是一个标识列。我该如何解决这个错误?我正朝着正确的方向前进吗?
答案 0 :(得分:3)
问题似乎是错误消息无关紧要。它应该说的是关于不可空的PK值的东西。似乎PK中涉及的一个值是无效的。我认为这个问题与C#中的String类型有关,因为Nullable在EF Designer中设置为False并且没有抛出错误,因为它根本没有被设置。