I am basically trying to perform a left outer join in my LINQ query but I want to return an empty instance of the left-joined object instead of null. My solution below results in an error:
The entity or complex type 'SubObject2' cannot be constructed in a LINQ to Entities query.
public MyObjectsHolder GetObjectHolder()
{
using (MyEntities ctx = new MyEntities())
{
var query = (from a in ctx.tableA
join b in ctx.tableB on b.FKID equals a.PKID into b_a
from b in b_a.DefaultIfEmpty()
select new MyObjectsHolder()
{
SubObject1 = a,
SubObject2 = b ?? new SubObject2()
});
return query.FirstOrDefault();
}
}