我正在尝试使用LINQ to SQL将3个表连接在一起,但我遇到了一个问题 . 这是我的代码 .
(from table1 in dc.Table1
join table2 in dc.Table2 on table1.Id equals table2.Id
join table3 in dc.Table3 on table2.Id equals table3.Id into merged
from rt in merged.DefaultIfEmpty()
select new { table1.value1, table1.value2, table2.value1, table2.value2, rt.value1, rt.value2 }).ToList();
我得到的错误是
The null value cannot be assigned to a member with type System.Double which is a non-nullable value type.
我不确定我是否正确地做到了 . 基本上我想在Table1和Table2上进行内连接,然后在表3中使用左外连接 .
3 回答
你试过这个吗?
重新生成数据库模型 .
如果db中的列可以为空并且它们被映射到.net(
int
,double
,decimal
等)中的值类型,则Linq to SQL会将它们生成为可空类型,因此您不必更改linq使用sql语句将null考虑在内,除非它实际上是查询的一部分 .试试这个: