无法将源类型 system.nullable 转换为目标类型 int
Cannot convert source type system.nullable to target type int
我在尝试使用 entity framework 检索数据时不断收到以下错误消息
并分配给我的自定义 class 客户
无法将源类型 'system.nullable' 转换为目标类型 'int'
CustomerNumber 和 Route 的数据类型为 Int32 并且数据库中的字段允许空值
select new Customer()
{
AccountListId = j.cost1,
Csr = j.cost2,
CustomerName = j.cost3,
Address = j.cost4,
Telephone = j.cost5,
Contact = j.cost6,
CustomerNumber = j.cost7,
Branch = j.cost8,
Route = j.cost9,
}).ToList<Customer>();
我该如何处理?
尝试
if (j.cost7 == null)
{
CustomerNumber = 0;
}
else
{
CustomerNumber = j.cost7
}
显然,j.cost7
和 j.cost9
属于 Nullable<Int32>
类型。我假设,因为你没有给我们看。
显然,您不能将 Nullable<Int32>
分配给 Int32
类型,因为,如果值为 null
怎么办?编译器不知道。您需要决定在这种情况下要做什么,并相应地编写代码。
假设您决定将 -1
分配为默认值以防数据库中的 null
值,那么您可以使用 null-coalescing operator 并执行如下操作:
select new Customer()
{
AccountListId = j.cost1,
Csr = j.cost2,
CustomerName = j.cost3,
Address = j.cost4,
Telephone = j.cost5,
Contact = j.cost6,
CustomerNumber = j.cost7 ?? -1,
Branch = j.cost8,
Route = j.cost9 ?? -1,
}).ToList<Customer>();
如果您真正想要的是能够存储 null
值(如果有的话),然后将 CustomerNumber
和 Route
的类型从 Int32
到 Nullable<Int32>
,或使用替代语法:int?
.
您可以使用 int 的默认值。
例如:
CustomerNumber = j.cost7 ?? default(int),
Branch = j.cost8,
Route = j.cost9 ?? default(int),
我在尝试使用 entity framework 检索数据时不断收到以下错误消息 并分配给我的自定义 class 客户
无法将源类型 'system.nullable' 转换为目标类型 'int'
CustomerNumber 和 Route 的数据类型为 Int32 并且数据库中的字段允许空值
select new Customer()
{
AccountListId = j.cost1,
Csr = j.cost2,
CustomerName = j.cost3,
Address = j.cost4,
Telephone = j.cost5,
Contact = j.cost6,
CustomerNumber = j.cost7,
Branch = j.cost8,
Route = j.cost9,
}).ToList<Customer>();
我该如何处理?
尝试
if (j.cost7 == null)
{
CustomerNumber = 0;
}
else
{
CustomerNumber = j.cost7
}
显然,j.cost7
和 j.cost9
属于 Nullable<Int32>
类型。我假设,因为你没有给我们看。
显然,您不能将 Nullable<Int32>
分配给 Int32
类型,因为,如果值为 null
怎么办?编译器不知道。您需要决定在这种情况下要做什么,并相应地编写代码。
假设您决定将 -1
分配为默认值以防数据库中的 null
值,那么您可以使用 null-coalescing operator 并执行如下操作:
select new Customer()
{
AccountListId = j.cost1,
Csr = j.cost2,
CustomerName = j.cost3,
Address = j.cost4,
Telephone = j.cost5,
Contact = j.cost6,
CustomerNumber = j.cost7 ?? -1,
Branch = j.cost8,
Route = j.cost9 ?? -1,
}).ToList<Customer>();
如果您真正想要的是能够存储 null
值(如果有的话),然后将 CustomerNumber
和 Route
的类型从 Int32
到 Nullable<Int32>
,或使用替代语法:int?
.
您可以使用 int 的默认值。
例如:
CustomerNumber = j.cost7 ?? default(int),
Branch = j.cost8,
Route = j.cost9 ?? default(int),