I am working on a WinForms project which requires to use Linq-To-Sql
. I have been able to create my DataContext using the SqlMetal
tool, and make some queries. But right now I have a problem that I havent been able to solve.
I am trying to make a LEFT OUTER JOIN
as following:
MyDatabase db = new MyDatabase(...);
var query = from p in db.ParentTable
join t in db.ChildTable on new {A = p.child_ID, B = p.OtherID}
equals new {A = t.ID, B = t.OtherID} into j1
from c in j1.DefaultIfEmpty()
select new
{
...
};
When I write this query an error is raised at compile-time in the join
word:
The type of one of the expressions in the join clause is incorrect. Type inference failed in the call to 'GroupJoin'
I know this error is caused by the comparison between p.child_ID
and t.ID
since p.child_ID
is int?
and t.ID
is int
. But, How can I solve this? How can I perform the LEFT OUTER JOIN
without having this error??
p.child_ID
is int?
since this column is marked as IS NULL
in SQL
.
Hope someone can help me, thanks in advance.