DO version 4.5.0.8751
public abstract class StaMachineInfo : Entity
{
protected StaMachineInfo(Session session)
: base(session)
{
Updated = DateTime.UtcNow;
}
protected StaMachineInfo(Session session, long id)
: base(session, id)
{
Updated = DateTime.UtcNow;
}
[Field]
public string MachineName { get; set; }
[Field(Indexed = true)]
public DateTime Updated { get; set; }
}
[HierarchyRoot]
public class StaSearchTermOperationCounter : StaMachineInfo
{
public StaSearchTermOperationCounter(Session session)
: base(session)
{
}
public StaSearchTermOperationCounter(Session session, long searchTerm, OperationType operationType, long operationSuccessCount, long operationFailedCount)
: base(session)
{
SearchTermId = searchTerm;
OperationType = operationType;
OperationSuccessCount = operationSuccessCount;
OperationFailedCount = operationFailedCount;
}
[Field(Nullable = false)]
public long SearchTermId { get; internal set; }
[Field]
public OperationType OperationType { get; internal set; }
[Field]
public long OperationSuccessCount { get; internal set; }
[Field]
public long OperationFailedCount { get; internal set; }
}
Code fragment:
using (var session = DB.OpenSession())
using (session.OpenTransaction(IsolationLevel.Snapshot))
{
var now = DateTime.UtcNow;
var startDate = new DateTime(now.Year, now.Month, 1);
return session.Query.All<StaSearchTermOperationCounter>()
.Where(ai => ai.Updated > startDate)
.GroupBy(ai => ai.OperationType)
.Select(i =>
new OperationInfo
{
OperationType = i.Key,
OperationSuccessCount = i.Sum(ai => ai.OperationSuccessCount),
OperationFailedCount = i.Sum(ai => ai.OperationFailedCount)
})
.ToArray();
}
See inner exception for details. ---> System.NullReferenceException: Ссылка на объект не указывает на экземпляр объекта.
в Xtensive.Orm.Linq.Translator.VisitNewExpressionArguments(NewExpression n)
в Xtensive.Orm.Linq.Translator.VisitMemberInit(MemberInitExpression mi)
в Xtensive.Linq.ExpressionVisitor`1.Visit(Expression e)
в Xtensive.Orm.Linq.Translator.Visit(Expression e)
в Xtensive.Orm.Linq.Translator.VisitLambda(LambdaExpression le)
в Xtensive.Orm.Linq.Translator.BuildProjection(LambdaExpression le)
в Xtensive.Orm.Linq.Translator.VisitSelect(Expression expression, LambdaExpression le)
в Xtensive.Orm.Linq.Translator.VisitQueryableMethod(MethodCallExpression mc, QueryableMethodKind methodKind)
в Xtensive.Linq.QueryableVisitor.VisitMethodCall(MethodCallExpression mc)
в Xtensive.Orm.Linq.Translator.VisitMethodCall(MethodCallExpression mc)
в Xtensive.Linq.ExpressionVisitor`1.Visit(Expression e)
в Xtensive.Orm.Linq.Translator.Visit(Expression e)
в Xtensive.Orm.Linq.Translator.Translate()
в Xtensive.Orm.Linq.QueryProvider.Translate(Expression expression, CompilerConfiguration compilerConfiguration)
--- End of inner exception stack trace ---
в Xtensive.Orm.Linq.QueryProvider.Translate(Expression expression, CompilerConfiguration compilerConfiguration)
в Xtensive.Orm.Linq.QueryProvider.Translate(Expression expression)
в Xtensive.Orm.Linq.QueryProvider.Execute(Expression expression)
в Xtensive.Orm.Linq.Queryable`1.GetEnumerator()
в System.Linq.Buffer`1..ctor(IEnumerable`1 source)
в System.Linq.Enumerable.ToArray(IEnumerable`1 source)
asked
Apr 26 '12 at 04:35
mmx003
5●1●1●2
Could you please add part of your persistent model that is used in query. Also it would be useful to indent code parts with 4 spaces. This adds syntax highlighting and mono-spaced font.
Thanks for updating your report. Unfortunately I still can not reproduce the problem. If you can make a test project, please send it to me via e-mail: support at dataobjects net
I found bug. if OperationInfo is struct then i get exception, if OperationInfo is class then all work fine. Thanks.
Thanks for tracking the problem. To be fixed.