-
Notifications
You must be signed in to change notification settings - Fork 1.3k
Open
Labels
Description
sometime work,sometime fail,not 100% fail
Version
5.0.21
Code
public interface INodeStoreBase
{
public string NodeId { get; set; }
}
public sealed class NodeStoreInfo : INodeStoreBase
{
public string NodeId { get; set; }
}
public class NodeStore<TStore> where TStore : class, INodeStoreBase, new()
{
private readonly ILiteCollection<TStore> liteCollection;
public NodeStore()
{
liteCollection = database.GetCollection<TStore>("store_name");
}
public TStore GetByNodeId(string nodeId)
{
return liteCollection.FindOne(c => c.NodeId == nodeId);
}
}
var store = NodeStore<NodeStoreInfo>();
NodeStoreInfo info = store.GetByNodeId("test");
Error Message
System.NotSupportedException: Member NodeId not found on BsonMapper for type INodeStoreBase.
at LiteDB.LinqExpressionVisitor.ResolveMember(MemberInfo member)
at LiteDB.LinqExpressionVisitor.VisitMember(MemberExpression node)
at System.Linq.Expressions.MemberExpression.Accept(ExpressionVisitor)
at System.Linq.Expressions.ExpressionVisitor.Visit(Expression)
at LiteDB.LinqExpressionVisitor.VisitAsPredicate(Expression expr, Boolean ensurePredicate)
at LiteDB.LinqExpressionVisitor.VisitBinary(BinaryExpression node)
at System.Linq.Expressions.BinaryExpression.Accept(ExpressionVisitor)
at System.Linq.Expressions.ExpressionVisitor.Visit(Expression)
at System.Linq.Expressions.ExpressionVisitor.VisitLambda[T](Expression`1)
at LiteDB.LinqExpressionVisitor.VisitLambda[T](Expression`1 node)
at System.Linq.Expressions.Expression`1.Accept(ExpressionVisitor)
at System.Linq.Expressions.ExpressionVisitor.Visit(Expression)
at LiteDB.LinqExpressionVisitor.Resolve(Boolean predicate)
at LiteDB.BsonMapper.GetExpression[T,K](Expression`1 predicate)
at LiteDB.LiteCollection`1.FindOne(Expression`1 predicate)
at NodeStore`2.GetByNodeId(String nodeId)