考虑使用varchar(1) NULL
字段定义的SQL Server表。它被用来存储性别角色。有些行有数据,有些不是:空或空白。授予空白应该是空值,但考虑空白在这里是一个有效的值。我更喜欢这个值为null。Linq To Sql:例外“字符串必须只有一个字符长”
ID Gender 1 'M' 4 'M' 3 '' 4 'F'
运行的LINQ to SQL查询时,就会抛出一个例外,其中的someID
值为3
var emp = (from e in db.Employees
where e.ID == someID
select e);
异常:
字符串必须是一个字符长。
问题:这个异常的原因是什么?可以做些什么来预防或消除这个问题?
为什么不在SQL Server中使用Char(1)? – 2009-07-27 20:13:51
@Dan - 因为将现有数据库模式更改为支持可以更容易更改的生成文件没有意义。 LINQ to SQL设计器在varchar(1)中使用Char的事实在我看来是一个错误。 – 2009-07-27 20:16:47