【发布时间】:2010-01-09 17:49:29
【问题描述】:
我正在使用最新版本的 SubSonic 3 和 ActiveRecord。我正在尝试在 LINQ 中进行左连接。它在 SubSonic 中某处出现错误而失败。
我有一个 Vehicle 对象和一个 VehicleImage 对象 Vehicle 可以有多个图像,但这不是必需的。所以左连接是合适的。
这就是我所拥有的
var vehicle = from v in Vehicle.All()
join dl in DealerLocation.All() on v.DealerLocationID equals dl.ID
join vi in VehicleImage.All() on v.ID equals vi.VehicleID into VehicleImages
from vij in VehicleImages.DefaultIfEmpty()
&& vij.IsPrimary
select new
{
v, vij.Image
};
这是我得到的错误
The expression of type 'System.Linq.IQueryable`1[<>f__AnonymousType1`2[<>f__AnonymousType0`2[Project.Data.Vehicle,Project.Data.DealerLocation],System.Collections.Generic.IEnumerable`1[Project.Data.VehicleImage]]]' is not a sequence
这是堆栈跟踪
在 SubSonic.Linq.Translation.QueryBinder.ConvertToSequence(表达式 expr) 在 SubSonic.Linq.Translation.QueryBinder.VisitSequence(表达式源) 在 SubSonic.Linq.Translation.QueryBinder.BindSelectMany(类型 resultType,表达式源,LambdaExpression collectionSelector,LambdaExpression resultSelector) 在 SubSonic.Linq.Translation.QueryBinder.VisitMethodCall(MethodCallExpression m) 在 SubSonic.Linq.Structure.ExpressionVisitor.Visit(表达式 exp) 在 SubSonic.Linq.Structure.DbExpressionVisitor.Visit(表达式 exp) 在 SubSonic.Linq.Translation.QueryBinder.Visit(表达式 exp) 在 SubSonic.Linq.Translation.QueryBinder.Bind(QueryMapping 映射,表达式表达式) 在 SubSonic.Linq.Structure.QueryMapping.Translate(表达式表达式) 在 SubSonic.Linq.Structure.DbQueryProvider.Translate(表达式表达式) 在 SubSonic.Linq.Structure.DbQueryProvider.GetExecutionPlan(表达式表达式) 在 SubSonic.Linq.Structure.DbQueryProvider.Execute(表达式表达式) 在 SubSonic.Linq.Structure.QueryProvider.System.Linq.IQueryProvider.Execute(表达式表达式) 在 SubSonic.Linq.Structure.Query`1.GetEnumerator() 在 System.Linq.SystemCore_EnumerableDebugView`1.get_Items()提前感谢您的任何见解。
【问题讨论】:
标签: subsonic subsonic3 subsonic-active-record