【发布时间】:2011-05-24 09:23:50
【问题描述】:
您可以使用 global::Namespace 将 ENUM 数据类型附加到 Linq2SQL 中的 sqlserver-table-field 并指定它的服务器数据类型。
我已经删除了一个表以及与之前 ENUM 的关系。 在 Linq2Sql DataContext 中,类型设置为 global::Namespace,NULLable=True 及其对应的服务器数据类型(small int)。
我为什么会得到
InvalidOperationException
The null value cannot be assigned to a member with type
<Namespace> which is a non-nullable value type.
..当加载具有此值为 null 的行时?
【问题讨论】:
-
看来
是一个值类型,如果你想将 Null 分配给它添加“?”声明枚举类型的运算符:类似 EnumDataType? sql-server-field. -
谢谢。那将是容易的部分。不过,这是由 Linq2Sql 工具完成的,从数据库中读取空值似乎很困惑..
-
对Linq2Sql不是很熟悉,但是有没有自动生成的代码?
-
简单地打开生成的代码并添加“?”怎么样?到相应的声明?我知道您前段时间必须做类似的事情以确保 Guid-fields 将获得 db 生成的值。 (它支持它,但 Linq2Sql 没有正确添加该参数..)
-
@Robin 这似乎是正确的答案。我永远不会建议打开生成的代码,但事实就是如此。我很确定(并且会在这种情况下加倍检查)它足够添加吗?在 global:: 定义中。这意味着“global::Namespace.Class?”。
标签: c# linq-to-sql