Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/308.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# Linq到SQL的外键是枚举_C#_Linq To Sql - Fatal编程技术网

C# Linq到SQL的外键是枚举

C# Linq到SQL的外键是枚举,c#,linq-to-sql,C#,Linq To Sql,Linq到SQL任务 看图片 当我尝试实例化它时,我得到运行时异常“null值不能分配给xaccountd类型的成员,它是一个不可为null的值类型”。当我将类型从xaccounted更改为int时,一切都按预期工作。为什么?如何将枚举用作密钥类型 添加:虽然我在属性窗口中设置了Nullable=true,但生成的代码是private XAccountId\u AccountId1=default(XAccountId)。所以DBML生成器工作不正常 补充2:与我的问题有关。DBML生成器

Linq到SQL任务

看图片

当我尝试实例化它时,我得到运行时异常“null值不能分配给xaccountd类型的成员,它是一个不可为null的值类型”。当我将类型从xaccounted更改为int时,一切都按预期工作。为什么?如何将枚举用作密钥类型

添加:虽然我在属性窗口中设置了Nullable=true,但生成的代码是
private XAccountId\u AccountId1=default(XAccountId)。所以DBML生成器工作不正常


补充2:与我的问题有关。DBML生成器忽略枚举的CanBeNull=“true”。

是否可以将类型设置为
xaccounted?
(带问号)。正如error所说,您不能将null赋值给值类型,只能赋值给引用类型;而
enum
是一种值类型。另一种方法是使您的列不可为空。

这里发生的情况仍然非常不清楚。我以前尝试过这种方法。它起作用了。但是我被迫设置xaccounted?在XAccount中也是如此,但它不能按模型为Null。如果我正确地阅读了您的模型,那么您在模型中将它设置为nullable(从底部开始的第二个屏幕),您已经将它下划线为nullable,那么它不应该是“nullable-false”吗?它在db中是如何定义的?在XAccount中它是不可为空的(它是数据库中的主键)。在XSourceSystem中,它可能为null(没有与XSourceSystem关联的XAccount)。