c# - ‘帮助’ 服务器无法生成主键列

标签 c# mysql sql-server linq

我的创建表代码如下:

CREATE TABLE [dbo].[DeTai](
[ID] [int] IDENTITY(1,1) NOT NULL,
[MaDeTai]  AS ('DT'+right('000000'+CONVERT([varchar](10),[ID]),(6))) PERSISTED NOT NULL,
[TenDeTai] [nvarchar](255) NOT NULL,
[LinhVuc] [nvarchar](255) NOT NULL,
[Nam] [int] NOT NULL,
[MaGV] [varchar](8) NOT NULL,
)

当我使用 linq to sql 插入值时,会出现此消息

The primary key column of type 'VarChar(8)' cannot be generated by the server.

我该怎么办?

最佳答案

你必须指定主键,仅设置身份是不够的

CREATE TABLE [dbo].[DeTai](
  [ID] [int] IDENTITY(1,1) NOT NULL,
  [MaDeTai]  AS ('DT'+right('000000'+CONVERT([varchar](10),[ID]),(6))) PERSISTED NOT NULL,
  [TenDeTai] [nvarchar](255) NOT NULL,
  [LinhVuc] [nvarchar](255) NOT NULL,
  [Nam] [int] NOT NULL,
  [MaGV] [varchar](8) NOT NULL,

  constraint PK_DeTail_ID primary key (ID)
)

关于c# - ‘帮助’ 服务器无法生成主键列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40263799/

相关文章:

mysql - 不是mysql中的group组函数

php - 动态添加/删除新的表单输入

SQL 列 'Id' 被指定多次

sql-server - 创建聚集主键的 SQL Server 语法

c# - 为了最大限度地提高 Mono 代码的可移植性,我应该注意哪些限制?

c# - 将 HBITMAP 句柄从非托管代码传递到托管代码以创建 System.Drawing.Bitmap 的安全性

c# - 排序元组列表时的默认行为是什么?

mysql - 左外连接 sql 中忽略的子句

sql-server - 获取 child 的所有 parent

c# - 基于位值启用行为