Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Microsoft.AspNet.OData 5.7.0(OData v.4)多级$expand AND#x27;行不通_C#_Asp.net Web Api2_Odata - Fatal编程技术网

C# Microsoft.AspNet.OData 5.7.0(OData v.4)多级$expand AND#x27;行不通

C# Microsoft.AspNet.OData 5.7.0(OData v.4)多级$expand AND#x27;行不通,c#,asp.net-web-api2,odata,C#,Asp.net Web Api2,Odata,编辑 我现在只剩下一个错误: { "error":{ "code":"","message":"An error has occurred.","innererror":{ "message":"The 'ObjectContent`1' type failed to serialize the response body for content type 'application/json; odata.metadata=minimal'.","type":"Syste

编辑

我现在只剩下一个错误:

{
  "error":{
    "code":"","message":"An error has occurred.","innererror":{
      "message":"The 'ObjectContent`1' type failed to serialize the response body for content type 'application/json; odata.metadata=minimal'.","type":"System.InvalidOperationException","stacktrace":"","internalexception":{
        "message":"Object reference not set to an instance of an object.","type":"System.NullReferenceException","stacktrace":"   at NHibernate.Linq.Visitors.ExpressionKeyVisitor.VisitConstantExpression(ConstantExpression expression)\r\n   at NHibernate.Linq.Visitors.ExpressionKeyVisitor.VisitBinaryExpression(BinaryExpression expression)\r\n   at NHibernate.Linq.Visitors.ExpressionKeyVisitor.VisitConditionalExpression(ConditionalExpression expression)\r\n   at NHibernate.Linq.Visitors.ExpressionKeyVisitor.VisitMemberExpression(MemberExpression expression)\r\n   at NHibernate.Linq.Visitors.SelectJoinDetector.VisitMemberExpression(MemberExpression expression)\r\n   at Remotion.Linq.Parsing.ExpressionTreeVisitor.VisitConditionalExpression(ConditionalExpression expression)\r\n   at Remotion.Linq.Parsing.ExpressionTreeVisitor.VisitMemberAssignment(MemberAssignment memberAssigment)\r\n   at Remotion.Linq.Parsing.ExpressionTreeVisitor.VisitList[T](ReadOnlyCollection`1 list, Func`2 visitMethod)\r\n   at Remotion.Linq.Parsing.ExpressionTreeVisitor.VisitMemberInitExpression(MemberInitExpression expression)\r\n   at Remotion.Linq.Parsing.ExpressionTreeVisitor.VisitMemberAssignment(MemberAssignment memberAssigment)\r\n   at Remotion.Linq.Parsing.ExpressionTreeVisitor.VisitList[T](ReadOnlyCollection`1 list, Func`2 visitMethod)\r\n   at Remotion.Linq.Parsing.ExpressionTreeVisitor.VisitMemberInitExpression(MemberInitExpression expression)\r\n   at Remotion.Linq.Parsing.ExpressionTreeVisitor.VisitMemberAssignment(MemberAssignment memberAssigment)\r\n   at Remotion.Linq.Parsing.ExpressionTreeVisitor.VisitList[T](ReadOnlyCollection`1 list, Func`2 visitMethod)\r\n   at Remotion.Linq.Parsing.ExpressionTreeVisitor.VisitMemberInitExpression(MemberInitExpression expression)\r\n   at Remotion.Linq.Parsing.ExpressionTreeVisitor.VisitMemberAssignment(MemberAssignment memberAssigment)\r\n   at Remotion.Linq.Parsing.ExpressionTreeVisitor.VisitList[T](ReadOnlyCollection`1 list, Func`2 visitMethod)\r\n   at Remotion.Linq.Parsing.ExpressionTreeVisitor.VisitMemberInitExpression(MemberInitExpression expression)\r\n   at Remotion.Linq.Parsing.ExpressionTreeVisitor.VisitMemberAssignment(MemberAssignment memberAssigment)\r\n   at Remotion.Linq.Parsing.ExpressionTreeVisitor.VisitList[T](ReadOnlyCollection`1 list, Func`2 visitMethod)\r\n   at Remotion.Linq.Parsing.ExpressionTreeVisitor.VisitMemberInitExpression(MemberInitExpression expression)\r\n   at Remotion.Linq.Clauses.SelectClause.TransformExpressions(Func`2 transformation)\r\n   at Remotion.Linq.QueryModelVisitorBase.VisitQueryModel(QueryModel queryModel)\r\n   at NHibernate.Linq.Visitors.QueryModelVisitor.GenerateHqlQuery(QueryModel queryModel, VisitorParameters parameters, Boolean root)\r\n   at NHibernate.Linq.NhLinqExpression.Translate(ISessionFactoryImplementor sessionFactory, Boolean filter)\r\n   at NHibernate.Hql.Ast.ANTLR.ASTQueryTranslatorFactory.CreateQueryTranslators(IQueryExpression queryExpression, String collectionRole, Boolean shallow, IDictionary`2 filters, ISessionFactoryImplementor factory)\r\n   at NHibernate.Engine.Query.QueryExpressionPlan..ctor(IQueryExpression queryExpression, Boolean shallow, IDictionary`2 enabledFilters, ISessionFactoryImplementor factory)\r\n   at NHibernate.Engine.Query.QueryPlanCache.GetHQLQueryPlan(IQueryExpression queryExpression, Boolean shallow, IDictionary`2 enabledFilters)\r\n   at NHibernate.Impl.AbstractSessionImpl.GetHQLQueryPlan(IQueryExpression queryExpression, Boolean shallow)\r\n   at NHibernate.Impl.AbstractSessionImpl.CreateQuery(IQueryExpression queryExpression)\r\n   at NHibernate.Linq.DefaultQueryProvider.Execute(Expression expression)\r\n   at NHibernate.Linq.DefaultQueryProvider.Execute[TResult](Expression expression)\r\n   at Remotion.Linq.QueryableBase`1.System.Collections.IEnumerable.GetEnumerator()\r\n   at System.Web.OData.Formatter.Serialization.ODataFeedSerializer.WriteFeed(IEnumerable enumerable, IEdmTypeReference feedType, ODataWriter writer, ODataSerializerContext writeContext)\r\n   at System.Web.OData.Formatter.ODataMediaTypeFormatter.WriteToStream(Type type, Object value, Stream writeStream, HttpContent content, HttpContentHeaders contentHeaders)\r\n   at System.Web.OData.Formatter.ODataMediaTypeFormatter.WriteToStreamAsync(Type type, Object value, Stream writeStream, HttpContent content, TransportContext transportContext, CancellationToken cancellationToken)\r\n--- End of stack trace from previous location where exception was thrown ---\r\n   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)\r\n   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n   at System.Web.Http.WebHost.HttpControllerHandler.<WriteBufferedResponseContentAsync>d__1b.MoveNext()"
      }
    }
  }
}
我正在使用反射设置我的
odataconvectionmodelbuilder

private static void SetUpODataModel(HttpConfiguration config)
{
    ODataModelBuilder builder = new ODataConventionModelBuilder();

    Type oDataModelBuilderType = builder.GetType();
    MethodInfo entitySetMethodInfo = oDataModelBuilderType.GetMethod("EntitySet");
    Type domainObjectInterfaceType = typeof(IMyDomainObject);

    // Ignore properties when appropriate.
    var institutionalAccountEntityType = 
        builder.EntitySet<InstitutionalAccount>("InstitutionalAccount").EntityType;
    institutionalAccountEntityType.Ignore(ia => ia.SomethingPrivate);

    // This doesn't help.
    //var authorshipEntityType = builder.EntitySet<Authorship>("Authorship").EntityType;
    //authorshipEntityType.ContainsRequired(x => x.Author);
    //var profileEntityType = builder.EntitySet<Profile>("Profile").EntityType;
    //profileEntityType.ContainsRequired(x => x.ProfileSubject);

    foreach (
        Type domainObjectType
        in
        domainObjectInterfaceType
            .Assembly
            .DefinedTypes
            .Where(t => t.GetInterfaces().Any(i => i.Equals(domainObjectInterfaceType)))
            .Where(t => t.IsClass)
    )
    {
        // Skip the type if we've already added it, e.g., it's already
        // been done by hand.
        if (builder.EntitySets.Any(es => es.ClrType.Equals(domainObjectType)))
        {
            continue;
        }

        // This is equivalent to:
        // builder.EntitySet<MyDomainObjectType>("MyDomainObjectType");
        MethodInfo entitySetGenericMethodInfo = entitySetMethodInfo.MakeGenericMethod(domainObjectType);
        Object entitySet = entitySetGenericMethodInfo.Invoke(builder, new[] { domainObjectType.Name });
    }

    config.EnableEnumPrefixFree(true);
    config.MapODataServiceRoute(
        routeName: "ODataRoute",
        routePrefix: "OData",
        model: builder.GetEdmModel());
}
private static void SetUpODataModel(HttpConfiguration配置)
{
ODataModelBuilder=新ODataConventionModelBuilder();
类型oDataModelBuilderType=builder.GetType();
MethodInfo entitySetMethodInfo=oDataModelBuilderType.GetMethod(“EntitySet”);
类型domainObjectInterfaceType=typeof(IMyDomainObject);
//适当时忽略属性。
var机构会计类型=
builder.EntitySet(“机构账户”).EntityType;
InstitutionalAccountityType.Ignore(ia=>ia.SomethingPrivate);
//这没用。
//var authorshipEntityType=builder.EntitySet,甚至没有在搜索词中包含NHibernate,但这不起作用

编辑:对于@FanOuyang的评论,我仍然收到错误。我的代码现在看起来像 var w=新作者[]{/*没有循环引用的长而大的混乱*/}; 返回w.AsQueryable()

编辑:我使用的测试代码没有达到我认为的效果。我编写了一些新代码,将结果集复制到新对象(包括循环引用)中,并且似乎正常工作,因此问题确实与NH有关。根据I$expand的内容,我得到的错误有:

{
  "error":{
    "code":"","message":"An error has occurred.","innererror":{
      "message":"The 'ObjectContent`1' type failed to serialize the response body for content type 'application/json; odata.metadata=minimal'.","type":"System.InvalidOperationException","stacktrace":"","internalexception":{
        "message":"Argument types do not match","type":"System.ArgumentException","stacktrace":"   at System.Linq.Expressions.Expression.Condition(Expression test, Expression ifTrue, Expression ifFalse)\r\n   at Remotion.Linq.Parsing.ExpressionTreeVisitor.VisitConditionalExpression(ConditionalExpression expression)\r\n   at NHibernate.Linq.NestedSelects.SelectClauseRewriter.VisitExpression(Expression expression)\r\n   at Remotion.Linq.Parsing.ExpressionTreeVisitor.VisitMemberAssignment(MemberAssignment memberAssigment)\r\n   at Remotion.Linq.Parsing.ExpressionTreeVisitor.VisitList[T](ReadOnlyCollection`1 list, Func`2 visitMethod)\r\n   at Remotion.Linq.Parsing.ExpressionTreeVisitor.VisitMemberInitExpression(MemberInitExpression expression)\r\n   at NHibernate.Linq.NestedSelects.SelectClauseRewriter.VisitExpression(Expression expression)\r\n   at Remotion.Linq.Parsing.ExpressionTreeVisitor.VisitMemberAssignment(MemberAssignment memberAssigment)\r\n   at Remotion.Linq.Parsing.ExpressionTreeVisitor.VisitList[T](ReadOnlyCollection`1 list, Func`2 visitMethod)\r\n   at Remotion.Linq.Parsing.ExpressionTreeVisitor.VisitMemberInitExpression(MemberInitExpression expression)\r\n   at NHibernate.Linq.NestedSelects.SelectClauseRewriter.VisitExpression(Expression expression)\r\n   at Remotion.Linq.Parsing.ExpressionTreeVisitor.VisitMemberAssignment(MemberAssignment memberAssigment)\r\n   at Remotion.Linq.Parsing.ExpressionTreeVisitor.VisitList[T](ReadOnlyCollection`1 list, Func`2 visitMethod)\r\n   at Remotion.Linq.Parsing.ExpressionTreeVisitor.VisitMemberInitExpression(MemberInitExpression expression)\r\n   at NHibernate.Linq.NestedSelects.SelectClauseRewriter.VisitExpression(Expression expression)\r\n   at Remotion.Linq.Parsing.ExpressionTreeVisitor.VisitMemberAssignment(MemberAssignment memberAssigment)\r\n   at Remotion.Linq.Parsing.ExpressionTreeVisitor.VisitList[T](ReadOnlyCollection`1 list, Func`2 visitMethod)\r\n   at Remotion.Linq.Parsing.ExpressionTreeVisitor.VisitMemberInitExpression(MemberInitExpression expression)\r\n   at NHibernate.Linq.NestedSelects.SelectClauseRewriter.VisitExpression(Expression expression)\r\n   at NHibernate.Linq.NestedSelects.NestedSelectRewriter.ReWrite(QueryModel queryModel, ISessionFactory sessionFactory)\r\n   at NHibernate.Linq.Visitors.QueryModelVisitor.GenerateHqlQuery(QueryModel queryModel, VisitorParameters parameters, Boolean root)\r\n   at NHibernate.Linq.NhLinqExpression.Translate(ISessionFactoryImplementor sessionFactory, Boolean filter)\r\n   at NHibernate.Hql.Ast.ANTLR.ASTQueryTranslatorFactory.CreateQueryTranslators(IQueryExpression queryExpression, String collectionRole, Boolean shallow, IDictionary`2 filters, ISessionFactoryImplementor factory)\r\n   at NHibernate.Engine.Query.QueryExpressionPlan..ctor(IQueryExpression queryExpression, Boolean shallow, IDictionary`2 enabledFilters, ISessionFactoryImplementor factory)\r\n   at NHibernate.Engine.Query.QueryPlanCache.GetHQLQueryPlan(IQueryExpression queryExpression, Boolean shallow, IDictionary`2 enabledFilters)\r\n   at NHibernate.Impl.AbstractSessionImpl.GetHQLQueryPlan(IQueryExpression queryExpression, Boolean shallow)\r\n   at NHibernate.Impl.AbstractSessionImpl.CreateQuery(IQueryExpression queryExpression)\r\n   at NHibernate.Linq.DefaultQueryProvider.Execute(Expression expression)\r\n   at NHibernate.Linq.DefaultQueryProvider.Execute[TResult](Expression expression)\r\n   at Remotion.Linq.QueryableBase`1.System.Collections.IEnumerable.GetEnumerator()\r\n   at System.Web.OData.Formatter.Serialization.ODataFeedSerializer.WriteFeed(IEnumerable enumerable, IEdmTypeReference feedType, ODataWriter writer, ODataSerializerContext writeContext)\r\n   at System.Web.OData.Formatter.ODataMediaTypeFormatter.WriteToStream(Type type, Object value, Stream writeStream, HttpContent content, HttpContentHeaders contentHeaders)\r\n   at System.Web.OData.Formatter.ODataMediaTypeFormatter.WriteToStreamAsync(Type type, Object value, Stream writeStream, HttpContent content, TransportContext transportContext, CancellationToken cancellationToken)\r\n--- End of stack trace from previous location where exception was thrown ---\r\n   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)\r\n   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n   at System.Web.Http.WebHost.HttpControllerHandler.<WriteBufferedResponseContentAsync>d__1b.MoveNext()"
      }
    }
  }
}   
{
“错误”:{
“代码”:”“消息”:“发生错误”。、“内部错误”:{
“消息”:“ObjectContent`1”类型未能序列化内容类型“application/json;odata.metadata=minimal.”的响应正文,“类型”:“System.InvalidOperationException”,“stacktrace”:“internalexception”:{
“消息”:“参数类型不匹配”,“类型”:“System.ArgumentException”,“stacktrace”:“at System.Linq.Expressions.Expression.Condition(表达式测试,表达式ifTrue,表达式ifFalse)\r\n at Remotion.Linq.Parsing.ExpressionTreeVisitor.VisitConditionExpression(条件表达式表达式)\r\n位于NHibernate.Linq.NestedSelects.SelectClauseRewriter.VisitExpression(表达式表达式)\r\n位于Remotion.Linq.Parsing.ExpressionTreeVisitor.VisitMemberAssignment(MemberAssignment MemberAssignment)\r\n位于Remotion.Linq.Parsing.ExpressionTreeVisitor.VisitList[T](只读集合'1列表,函数'2 visitMethod)\r\n在Remotion.Linq.Parsing.ExpressionTreeVisitor.VisitMemberInitExpression(MemberInitExpression表达式)\r\n在NHibernate.Linq.NestedSelects.SelectClaureWriter.visiteExpression(表达式表达式)\r\n在Remotion.Linq.Parsing.ExpressionTreeVisitor.VisitMemberAssignment(MemberAssignment MemberAssignment)处\r\n在Remotion.Linq.Parsing.ExpressionTreeVisitor.VisitList[T](ReadOnlyCollection`1列表,Func`2 visitMethod)\r\n在Remotion.Linq.Parsing.ExpressionTreeVisitor.VisitMemberInitExpression(MemberInitExpression表达式)\r\n在NHibernate.Linq.nestedSelectClaureWriter.VisitePression(表达式表达式表达式)\r\n在Remotion.Linq.Parsing.ExpressionTreeVisitor.VisitMemberAssignment(MemberAssignment MemberAssignment)\r\n在Remotion.Linq.Parsing.ExpressionTreeVisitor.VisitList[T](ReadOnlyCollection`1列表,Func`2 visitMethod)\r\n在Remotion.Linq.Parsing.ExpressionTreeVisitor.VisitMemberInitExpression(MemberInitExpression)\r\n位于NHibernate.Linq.NestedSelects.SelectClauseRewriter.VisitExpression(表达式表达式)\r\n位于Remotion.Linq.Parsing.ExpressionTreeVisitor.VisitMemberAssignment(MemberAssignment MemberAssignment)\r\n位于Remotion.Linq.Parsing.ExpressionTreeVisitor.VisitList[T](只读集合'1列表,函数'2 visitMethod)\r\n在Remotion.Linq.Parsing.ExpressionTreeVisitor.VisitMemberInitExpression(MemberInitExpression表达式)\r\n在NHibernate.Linq.NestedSelects.SelectClaureWriter.visiteExpression(表达式表达式)\r\n在NHibernate.Linq.nestedSelecteWriter.nestedSelecteWriter(QueryModel QueryModel,ISessionFactory sessionFactory sessionFactory)\r\n在NHibernate.Linq.Visitors.QueryModelVisitor.GenerateHqlQuery(QueryModel QueryModel,VisitorParameters参数,布尔根)\r\n在NHibernate.Linq.NhLinqExpression.Translate(ISessionFactoryImplementor sessionFactory,布尔过滤器)\r\n在NHibernate.Hql.Ast.ANTLR.ASTQueryTranslatorFactory.CreateQueryTranslators(IQueryExpression queryExpression,String collectionRole,布尔浅层,IDictionary`2筛选器,ISessionFactoryImplementor工厂)\r\n位于NHibernate.Engine.Query.QueryExpressionPlan..ctor(IQueryExpression queryExpression,布尔浅层,IDictionary`2 enabledFilters,ISessionFactoryImplementor工厂)\r\n位于NHibernate.Engine.Query.QueryLancache.GetHQLQueryPlan(IQueryExpression queryExpression,布尔浅层,IDictionary`2 EnabledFilter)\r\n位于NHibernate.Impl.AbstractSessionImpl.GetHQLQueryPlan(IQueryExpression queryExpression,布尔浅层)\r\n位于NHibernate.Impl.AbstractSessionImpl.CreateQuery(IQueryExpression queryExpression queryExpression)\r\n位于NHibernate.Linq.DefaultQueryProvider.Execute(表达式表达式)\r\n位于NHibernate.Linq.DefaultQueryProvider.Execute[TResult](表达式表达式)\r\n位于Remotion.Linq.QueryableBase`1.System.Collections.IEnumerable.GetEnumerator()\r\n位于System.Web.OData.Formatter.Serialization.ODataFeedSerializer.WriteFeed(IEnumerable enumerable、IEdmTypeReference feedType、ODataWriter、ODataSerializerContext writeContext)\r\n位于System.Web.OData.Formatter.ODataMediaTypeFormatter.WriteToStream(类型、对象值、流writeStream、HttpContent内容、HttpContentHeaders contentHeaders)\r\n位于System.Web.OData.Formatter.ODataMediaTypeFormatter.WriteToStreamAsync(类型类型、对象值、流writeStream、HttpContent内容、TransportContext TransportContext、CancellationToken CancellationToken)\r\n---从引发异常的上一个位置开始的堆栈结束跟踪---\r\n位于System.Runtime.Com
private static void SetUpODataModel(HttpConfiguration config)
{
    ODataModelBuilder builder = new ODataConventionModelBuilder();

    Type oDataModelBuilderType = builder.GetType();
    MethodInfo entitySetMethodInfo = oDataModelBuilderType.GetMethod("EntitySet");
    Type domainObjectInterfaceType = typeof(IMyDomainObject);

    // Ignore properties when appropriate.
    var institutionalAccountEntityType = 
        builder.EntitySet<InstitutionalAccount>("InstitutionalAccount").EntityType;
    institutionalAccountEntityType.Ignore(ia => ia.SomethingPrivate);

    // This doesn't help.
    //var authorshipEntityType = builder.EntitySet<Authorship>("Authorship").EntityType;
    //authorshipEntityType.ContainsRequired(x => x.Author);
    //var profileEntityType = builder.EntitySet<Profile>("Profile").EntityType;
    //profileEntityType.ContainsRequired(x => x.ProfileSubject);

    foreach (
        Type domainObjectType
        in
        domainObjectInterfaceType
            .Assembly
            .DefinedTypes
            .Where(t => t.GetInterfaces().Any(i => i.Equals(domainObjectInterfaceType)))
            .Where(t => t.IsClass)
    )
    {
        // Skip the type if we've already added it, e.g., it's already
        // been done by hand.
        if (builder.EntitySets.Any(es => es.ClrType.Equals(domainObjectType)))
        {
            continue;
        }

        // This is equivalent to:
        // builder.EntitySet<MyDomainObjectType>("MyDomainObjectType");
        MethodInfo entitySetGenericMethodInfo = entitySetMethodInfo.MakeGenericMethod(domainObjectType);
        Object entitySet = entitySetGenericMethodInfo.Invoke(builder, new[] { domainObjectType.Name });
    }

    config.EnableEnumPrefixFree(true);
    config.MapODataServiceRoute(
        routeName: "ODataRoute",
        routePrefix: "OData",
        model: builder.GetEdmModel());
}
{
  "error":{
    "code":"","message":"An error has occurred.","innererror":{
      "message":"The 'ObjectContent`1' type failed to serialize the response body for content type 'application/json; odata.metadata=minimal'.","type":"System.InvalidOperationException","stacktrace":"","internalexception":{
        "message":"Argument types do not match","type":"System.ArgumentException","stacktrace":"   at System.Linq.Expressions.Expression.Condition(Expression test, Expression ifTrue, Expression ifFalse)\r\n   at Remotion.Linq.Parsing.ExpressionTreeVisitor.VisitConditionalExpression(ConditionalExpression expression)\r\n   at NHibernate.Linq.NestedSelects.SelectClauseRewriter.VisitExpression(Expression expression)\r\n   at Remotion.Linq.Parsing.ExpressionTreeVisitor.VisitMemberAssignment(MemberAssignment memberAssigment)\r\n   at Remotion.Linq.Parsing.ExpressionTreeVisitor.VisitList[T](ReadOnlyCollection`1 list, Func`2 visitMethod)\r\n   at Remotion.Linq.Parsing.ExpressionTreeVisitor.VisitMemberInitExpression(MemberInitExpression expression)\r\n   at NHibernate.Linq.NestedSelects.SelectClauseRewriter.VisitExpression(Expression expression)\r\n   at Remotion.Linq.Parsing.ExpressionTreeVisitor.VisitMemberAssignment(MemberAssignment memberAssigment)\r\n   at Remotion.Linq.Parsing.ExpressionTreeVisitor.VisitList[T](ReadOnlyCollection`1 list, Func`2 visitMethod)\r\n   at Remotion.Linq.Parsing.ExpressionTreeVisitor.VisitMemberInitExpression(MemberInitExpression expression)\r\n   at NHibernate.Linq.NestedSelects.SelectClauseRewriter.VisitExpression(Expression expression)\r\n   at Remotion.Linq.Parsing.ExpressionTreeVisitor.VisitMemberAssignment(MemberAssignment memberAssigment)\r\n   at Remotion.Linq.Parsing.ExpressionTreeVisitor.VisitList[T](ReadOnlyCollection`1 list, Func`2 visitMethod)\r\n   at Remotion.Linq.Parsing.ExpressionTreeVisitor.VisitMemberInitExpression(MemberInitExpression expression)\r\n   at NHibernate.Linq.NestedSelects.SelectClauseRewriter.VisitExpression(Expression expression)\r\n   at Remotion.Linq.Parsing.ExpressionTreeVisitor.VisitMemberAssignment(MemberAssignment memberAssigment)\r\n   at Remotion.Linq.Parsing.ExpressionTreeVisitor.VisitList[T](ReadOnlyCollection`1 list, Func`2 visitMethod)\r\n   at Remotion.Linq.Parsing.ExpressionTreeVisitor.VisitMemberInitExpression(MemberInitExpression expression)\r\n   at NHibernate.Linq.NestedSelects.SelectClauseRewriter.VisitExpression(Expression expression)\r\n   at NHibernate.Linq.NestedSelects.NestedSelectRewriter.ReWrite(QueryModel queryModel, ISessionFactory sessionFactory)\r\n   at NHibernate.Linq.Visitors.QueryModelVisitor.GenerateHqlQuery(QueryModel queryModel, VisitorParameters parameters, Boolean root)\r\n   at NHibernate.Linq.NhLinqExpression.Translate(ISessionFactoryImplementor sessionFactory, Boolean filter)\r\n   at NHibernate.Hql.Ast.ANTLR.ASTQueryTranslatorFactory.CreateQueryTranslators(IQueryExpression queryExpression, String collectionRole, Boolean shallow, IDictionary`2 filters, ISessionFactoryImplementor factory)\r\n   at NHibernate.Engine.Query.QueryExpressionPlan..ctor(IQueryExpression queryExpression, Boolean shallow, IDictionary`2 enabledFilters, ISessionFactoryImplementor factory)\r\n   at NHibernate.Engine.Query.QueryPlanCache.GetHQLQueryPlan(IQueryExpression queryExpression, Boolean shallow, IDictionary`2 enabledFilters)\r\n   at NHibernate.Impl.AbstractSessionImpl.GetHQLQueryPlan(IQueryExpression queryExpression, Boolean shallow)\r\n   at NHibernate.Impl.AbstractSessionImpl.CreateQuery(IQueryExpression queryExpression)\r\n   at NHibernate.Linq.DefaultQueryProvider.Execute(Expression expression)\r\n   at NHibernate.Linq.DefaultQueryProvider.Execute[TResult](Expression expression)\r\n   at Remotion.Linq.QueryableBase`1.System.Collections.IEnumerable.GetEnumerator()\r\n   at System.Web.OData.Formatter.Serialization.ODataFeedSerializer.WriteFeed(IEnumerable enumerable, IEdmTypeReference feedType, ODataWriter writer, ODataSerializerContext writeContext)\r\n   at System.Web.OData.Formatter.ODataMediaTypeFormatter.WriteToStream(Type type, Object value, Stream writeStream, HttpContent content, HttpContentHeaders contentHeaders)\r\n   at System.Web.OData.Formatter.ODataMediaTypeFormatter.WriteToStreamAsync(Type type, Object value, Stream writeStream, HttpContent content, TransportContext transportContext, CancellationToken cancellationToken)\r\n--- End of stack trace from previous location where exception was thrown ---\r\n   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)\r\n   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n   at System.Web.Http.WebHost.HttpControllerHandler.<WriteBufferedResponseContentAsync>d__1b.MoveNext()"
      }
    }
  }
}   
{
  "error":{
    "code":"","message":"An error has occurred.","innererror":{
      "message":"The 'ObjectContent`1' type failed to serialize the response body for content type 'application/json; odata.metadata=minimal'.","type":"System.InvalidOperationException","stacktrace":"","internalexception":{
        "message":"Object reference not set to an instance of an object.","type":"System.NullReferenceException","stacktrace":"   at NHibernate.Linq.Visitors.ExpressionKeyVisitor.VisitConstantExpression(ConstantExpression expression)\r\n   at NHibernate.Linq.Visitors.ExpressionKeyVisitor.VisitBinaryExpression(BinaryExpression expression)\r\n   at NHibernate.Linq.Visitors.ExpressionKeyVisitor.VisitConditionalExpression(ConditionalExpression expression)\r\n   at NHibernate.Linq.Visitors.ExpressionKeyVisitor.VisitMemberExpression(MemberExpression expression)\r\n   at NHibernate.Linq.Visitors.SelectJoinDetector.VisitMemberExpression(MemberExpression expression)\r\n   at Remotion.Linq.Parsing.ExpressionTreeVisitor.VisitConditionalExpression(ConditionalExpression expression)\r\n   at Remotion.Linq.Parsing.ExpressionTreeVisitor.VisitMemberAssignment(MemberAssignment memberAssigment)\r\n   at Remotion.Linq.Parsing.ExpressionTreeVisitor.VisitList[T](ReadOnlyCollection`1 list, Func`2 visitMethod)\r\n   at Remotion.Linq.Parsing.ExpressionTreeVisitor.VisitMemberInitExpression(MemberInitExpression expression)\r\n   at Remotion.Linq.Parsing.ExpressionTreeVisitor.VisitMemberAssignment(MemberAssignment memberAssigment)\r\n   at Remotion.Linq.Parsing.ExpressionTreeVisitor.VisitList[T](ReadOnlyCollection`1 list, Func`2 visitMethod)\r\n   at Remotion.Linq.Parsing.ExpressionTreeVisitor.VisitMemberInitExpression(MemberInitExpression expression)\r\n   at Remotion.Linq.Parsing.ExpressionTreeVisitor.VisitMemberAssignment(MemberAssignment memberAssigment)\r\n   at Remotion.Linq.Parsing.ExpressionTreeVisitor.VisitList[T](ReadOnlyCollection`1 list, Func`2 visitMethod)\r\n   at Remotion.Linq.Parsing.ExpressionTreeVisitor.VisitMemberInitExpression(MemberInitExpression expression)\r\n   at Remotion.Linq.Parsing.ExpressionTreeVisitor.VisitMemberAssignment(MemberAssignment memberAssigment)\r\n   at Remotion.Linq.Parsing.ExpressionTreeVisitor.VisitList[T](ReadOnlyCollection`1 list, Func`2 visitMethod)\r\n   at Remotion.Linq.Parsing.ExpressionTreeVisitor.VisitMemberInitExpression(MemberInitExpression expression)\r\n   at Remotion.Linq.Parsing.ExpressionTreeVisitor.VisitMemberAssignment(MemberAssignment memberAssigment)\r\n   at Remotion.Linq.Parsing.ExpressionTreeVisitor.VisitList[T](ReadOnlyCollection`1 list, Func`2 visitMethod)\r\n   at Remotion.Linq.Parsing.ExpressionTreeVisitor.VisitMemberInitExpression(MemberInitExpression expression)\r\n   at Remotion.Linq.Clauses.SelectClause.TransformExpressions(Func`2 transformation)\r\n   at Remotion.Linq.QueryModelVisitorBase.VisitQueryModel(QueryModel queryModel)\r\n   at NHibernate.Linq.Visitors.QueryModelVisitor.GenerateHqlQuery(QueryModel queryModel, VisitorParameters parameters, Boolean root)\r\n   at NHibernate.Linq.NhLinqExpression.Translate(ISessionFactoryImplementor sessionFactory, Boolean filter)\r\n   at NHibernate.Hql.Ast.ANTLR.ASTQueryTranslatorFactory.CreateQueryTranslators(IQueryExpression queryExpression, String collectionRole, Boolean shallow, IDictionary`2 filters, ISessionFactoryImplementor factory)\r\n   at NHibernate.Engine.Query.QueryExpressionPlan..ctor(IQueryExpression queryExpression, Boolean shallow, IDictionary`2 enabledFilters, ISessionFactoryImplementor factory)\r\n   at NHibernate.Engine.Query.QueryPlanCache.GetHQLQueryPlan(IQueryExpression queryExpression, Boolean shallow, IDictionary`2 enabledFilters)\r\n   at NHibernate.Impl.AbstractSessionImpl.GetHQLQueryPlan(IQueryExpression queryExpression, Boolean shallow)\r\n   at NHibernate.Impl.AbstractSessionImpl.CreateQuery(IQueryExpression queryExpression)\r\n   at NHibernate.Linq.DefaultQueryProvider.Execute(Expression expression)\r\n   at NHibernate.Linq.DefaultQueryProvider.Execute[TResult](Expression expression)\r\n   at Remotion.Linq.QueryableBase`1.System.Collections.IEnumerable.GetEnumerator()\r\n   at System.Web.OData.Formatter.Serialization.ODataFeedSerializer.WriteFeed(IEnumerable enumerable, IEdmTypeReference feedType, ODataWriter writer, ODataSerializerContext writeContext)\r\n   at System.Web.OData.Formatter.ODataMediaTypeFormatter.WriteToStream(Type type, Object value, Stream writeStream, HttpContent content, HttpContentHeaders contentHeaders)\r\n   at System.Web.OData.Formatter.ODataMediaTypeFormatter.WriteToStreamAsync(Type type, Object value, Stream writeStream, HttpContent content, TransportContext transportContext, CancellationToken cancellationToken)\r\n--- End of stack trace from previous location where exception was thrown ---\r\n   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)\r\n   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n   at System.Web.Http.WebHost.HttpControllerHandler.<WriteBufferedResponseContentAsync>d__1b.MoveNext()"
      }
    }
  }
}