C# Binary不能为主列,但只能是不包含';t变化是二进制的
我使用Linq2sql访问了一个简单的表,其中只有很少的列。唯一不变的列是二进制。但当我尝试将其作为主列时,Linq2sql告诉我: 标识成员不支持System.Byte[] (表示主要。表中没有标识。) 如果我没有设置任何主列,linq2sql会告诉我,没有主键它就不能工作 如果我将另一列设置为主列,则无法更改该列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
这里的解决方案是什么?添加一个唯一的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
列,但将其用作集群键也并不完美。