2017-07-11 3 views
1

は、私はこのようなカサンドラにタイムスタンプフィールドを更新しようとしています:C#ドライバを使ってcassandraのタイムスタンプフィールドを更新するにはどうすればよいですか?

await new Table<MyEntity>(_session).Where(e => e.Id == entity.Id) 
    .Select(u => new MyEntity 
    { 
     EndDate = DateTimeOffset.UtcNow 
    }) 
    .Update() 
    .ExecuteAsync(); 

しかし、それは、「オブジェクトのインスタンスに設定されていないオブジェクト参照を。」スローカサンドラのスタックトレースで:他のフィールドを更新しようとすると

at Cassandra.Data.Linq.CqlExpressionVisitor.GetPropertyValue(MemberExpression node) 
at Cassandra.Data.Linq.CqlExpressionVisitor.GetClosureValue(MemberExpression node) 
at Cassandra.Data.Linq.CqlExpressionVisitor.AddProjection(Expression node, PocoColumn column) 
at Cassandra.Data.Linq.CqlExpressionVisitor.FillUpdateProjection(MemberExpression node) 
at Cassandra.Data.Linq.CqlExpressionVisitor.VisitMemberInit(MemberInitExpression node) 
at Cassandra.Data.Linq.CqlExpressionVisitor.VisitLambda[T](Expression`1 node) 
at Cassandra.Data.Linq.CqlExpressionVisitor.VisitMethodCall(MethodCallExpression node) 
at Cassandra.Data.Linq.CqlExpressionVisitor.GetUpdate(Expression expression, Object[]& values, Nullable`1 ttl, Nullable`1 timestamp, MapperFactory mapperFactory) 
at Cassandra.Data.Linq.CqlUpdate.GetCql(Object[]& values) 
at Cassandra.Data.Linq.CqlCommand.<ExecuteAsync>d__34.MoveNext() 
--- End of stack trace from previous location where exception was thrown --- 
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() 
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 
at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() 

は、[OK]を動作し、私は.Selectから終了日のフィールドを削除する場合はそれが動作リスト私は取得しない何かがあります。おそらく必要なタイムスタンプのための特別なマッピングがありますか?私はこの投稿を

答えて

2

瞬間の後、私は「何地獄」の瞬間を持っていたし、この試みた:ええと、

DateTimeOffset endDate = DateTimeOffset.UtcNow; 

await new Table<MyEntity>(_session).Where(e => e.Id == entity.Id) 
    .Select(u => new MyEntity 
    { 
     EndDate = endDate 
    }) 
    .Update() 
    .ExecuteAsync(); 

どちらを。働くしたがって、Selectの外に明示的に値を定義するだけで機能します。私はLinqプロバイダがちょっと難解かもしれないと思います!

+1

この問題はhttps://datastax-oss.atlassian.net/browse/CSHARP-577に関連しています –

関連する問題