1
的时候所以我有这个枚举枚举不能使用LINQ
public enum JobStatus
{
Created = 0,
Assigning = 1,
Assigned = 2,
Started = 3,
Finished = 4
}
在这个界面
public interface IJob
{
Guid Id { get; set; }
JobStatus Status { get; set; }
bool IsFaulted { get; set; }
string ErrorMessage { get; set; }
}
我扑通这些家伙在数据库中的一个不言而喻精细反序列化,和。这是看起来像。
{ "_id" : { "$uuid" : "4e5002b6-3c80-b497-4a33-46b0ea5a39bf"}
, "_t" : "MyJobObject"
, "Status" : 0
, "IsFaulted" : false
, "ErrorMessage" : null
, "Location" : "overthere"}
后来,当我尝试并抓住一个与此代码
Database.GetCollection<IJob>("Jobs").AsQueryable().FirstOrDefault(x=>x.Status == JobStatus.Created);
抛出异常
Unable to determine the serialization information for the expression: jobs.Status.
at MongoDB.Driver.Linq.Utils.BsonSerializationInfoFinder.GetSerializationInfo(Expression node, Dictionary`2 serializationInfoCache)
at MongoDB.Driver.Linq.Utils.BsonSerializationInfoHelper.GetSerializationInfo(Expression node)
at MongoDB.Driver.Linq.PredicateTranslator.BuildComparisonQuery(Expression variableExpression, ExpressionType operatorType, ConstantExpression constantExpression)
at MongoDB.Driver.Linq.PredicateTranslator.BuildComparisonQuery(BinaryExpression binaryExpression)
at MongoDB.Driver.Linq.PredicateTranslator.BuildQuery(Expression expression)
at MongoDB.Driver.Linq.SelectQuery.BuildQuery()
at MongoDB.Driver.Linq.SelectQuery.Execute()
at MongoDB.Driver.Linq.MongoQueryProvider.Execute(Expression expression)
at MongoDB.Driver.Linq.MongoQueryProvider.Execute[TResult](Expression expression)
at System.Linq.Queryable.FirstOrDefault[TSource](IQueryable`1 source)
我第一次去,我没有分配到整数的枚举和那产生了相同的结果。我在两台不同的机器上看到了这一点,还有两个全新的MongoDb安装,一个安装在Windows上,另一个安装在Ubuntu 12.04上。
不确定该怎么做,有什么想法?