我收到了这个
Nullable对象必须有值。
错误在这一行:
results.Test= installment.Test1.Value;
我的'测试'属性如下所示:
[DataMember]
public int Test{ get; set; }
我的'Test1'属性在LINQ2SQL Designer中看起来像这样:
public System.Nullable<int> Test1
{
get
{
return this._Test1;
}
set
{
if ((this._test1!= value))
{
this.OnTest1Changing(value);
this.SendPropertyChanging();
this._Test1= value;
this.SendPropertyChanged("Test1");
this.OnTest1Changed();
}
}
}
我在这里做错了什么?
答案 0 :(得分:3)
您的Test1
媒体资源是(仍然)null
。基础字段_Test1
默认为null
你可以使用
results.Test = installment.Test1 ?? 0;
如果0
是可接受的默认值。
答案 1 :(得分:1)
请尝试使用此代码:
results.Test = installment.Test1.GetValueOrDefault(-1); //set default value
答案 2 :(得分:0)
installment.Test1.Value;
假设installment.Test1
实际上有值。但是,您获得的错误意味着它没有,并且该属性实际上是null
。这是出乎意料吗?
答案 3 :(得分:0)
Value
的{{1}}是installment.Test1.Value
,您尝试将其分配给不可为空的null
类型属性integer
。
答案 4 :(得分:0)
看起来installment.Test1.Value
为空,无法分配给int
尝试
results.Test= installment.Test1 ?? 0;
答案 5 :(得分:0)
Test1.Value
返回false, Test1.HasValue
将抛出。
答案 6 :(得分:0)
试试这个。
if(installment.Test1.HasValue) results.Test = installment.Test1.Value;
答案 7 :(得分:0)
如果要使用value属性,则需要具有非null值。您可以使用HasValue属性检查属性是否具有值。
var test = (Test1.HasValue) ? (int?)Test1.Value : null;
您可以直接使用变量,而不使用Value属性。
var testing = Test1;