Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/259.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Binary不能为主列,但只能是不包含';t变化是二进制的_C#_Sql_.net_Sql Server_Linq To Sql - Fatal编程技术网

C# Binary不能为主列,但只能是不包含';t变化是二进制的

C# Binary不能为主列,但只能是不包含';t变化是二进制的,c#,sql,.net,sql-server,linq-to-sql,C#,Sql,.net,Sql Server,Linq To Sql,我使用Linq2sql访问了一个简单的表,其中只有很少的列。唯一不变的列是二进制。但当我尝试将其作为主列时,Linq2sql告诉我: 标识成员不支持System.Byte[] (表示主要。表中没有标识。) 如果我没有设置任何主列,linq2sql会告诉我,没有主键它就不能工作 如果我将另一列设置为主列,则无法更改该列 这里的解决方案是什么?添加一个唯一的id列,例如 alter table mytable add id int identity (1,1) 添加一个唯一的id列,例如 alte

我使用Linq2sql访问了一个简单的表,其中只有很少的列。唯一不变的列是二进制。但当我尝试将其作为主列时,Linq2sql告诉我:

标识成员不支持System.Byte[]

(表示主要。表中没有标识。)

如果我没有设置任何主列,linq2sql会告诉我,没有主键它就不能工作

如果我将另一列设置为主列,则无法更改该列


这里的解决方案是什么?

添加一个唯一的id列,例如

alter table mytable add id int identity (1,1)

添加一个唯一的id列,例如

alter table mytable add id int identity (1,1)

向表中添加id列?@DaleBurrell,但主列必须是唯一的。是的,添加唯一的id列吗
altertable mytable addid int identity(1,1)
大多数人使用identity列。。。它不会错误地重置自己。。。但是你可以编写自己的序列生成器。。。看起来有点像OTT。如果你不信任SQL server维护序列,那么你怎么能信任它和实际数据呢?
int
identity列适用于大约20亿行。如果您真的担心这个问题,那么使用
bigint
。您可以使用
uniqueidentifier
列,但将其用作群集键也不完美。是否向表中添加id列?@DaleBurrell,但主列必须是唯一的。是的,是否添加唯一的id列
altertable mytable addid int identity(1,1)
大多数人使用identity列。。。它不会错误地重置自己。。。但是你可以编写自己的序列生成器。。。看起来有点像OTT。如果你不信任SQL server维护序列,那么你怎么能信任它和实际数据呢?
int
identity列适用于大约20亿行。如果您真的担心这个问题,那么使用
bigint
。您可以使用
uniqueidentifier
列,但将其用作集群键也并不完美。