C# 实体框架LINQ查询左连接到新对象,而不是null
基本上,我试图在LINQ查询中执行左外部联接,但我希望返回左联接对象的空实例,而不是null。我的以下解决方案导致错误: 无法在LINQ to Entities查询中构造实体或复杂类型“SubObject 2”C# 实体框架LINQ查询左连接到新对象,而不是null,c#,linq,entity-framework,linq-to-entities,C#,Linq,Entity Framework,Linq To Entities,基本上,我试图在LINQ查询中执行左外部联接,但我希望返回左联接对象的空实例,而不是null。我的以下解决方案导致错误: 无法在LINQ to Entities查询中构造实体或复杂类型“SubObject 2” LINQtoEntities提供程序之所以抛出该实例,是因为它无法将该实例化正确地转换为SQL查询(这正是LINQtoEntities所做的)。由于您的方法仅返回一个对象,因此我建议您执行以下操作以进行补偿: var query = (from a in ctx.tableA
LINQtoEntities提供程序之所以抛出该实例,是因为它无法将该实例化正确地转换为SQL查询(这正是LINQtoEntities所做的)。由于您的方法仅返回一个对象,因此我建议您执行以下操作以进行补偿:
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
});
var result = query.FirstOrDefault();
if(result != null && result.SubObject2 == null) result.SubObject2 = new SubObject2();
return result;
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
});
var result = query.FirstOrDefault();
if(result != null && result.SubObject2 == null) result.SubObject2 = new SubObject2();
return result;