先上报错
2020-12-14 01:44:42.3648 AllServer 0001 System.Exception: 查询数据库异常! AnnouncementInfo { "Filename" : "20_12_10" } ---> System.InvalidOperationException: Can't compile a NewExpression with a constructor declared on an abstract class
at System.Linq.Expressions.Compiler.LambdaCompiler.EmitNewExpression(Expression expr)
at System.Linq.Expressions.Compiler.LambdaCompiler.EmitExpression(Expression node, CompilationFlags flags)
at System.Linq.Expressions.Compiler.LambdaCompiler.EmitLambdaBody(CompilerScope parent, Boolean inlined, CompilationFlags flags)
at System.Linq.Expressions.Compiler.LambdaCompiler.EmitLambdaBody()
at System.Linq.Expressions.Compiler.LambdaCompiler.Compile(LambdaExpression lambda)
at System.Linq.Expressions.Expression`1.Compile(Boolean preferInterpretation)
调用的代码长这样:
var info = await dbProxy.Query<AnnouncementInfo>(_announcement => _announcement.Filename == "20_12_10");
与它类似的这条却完全没问题:
var info = await dbProxy.Query<AccountInfo>(_account => _account.Account == "5");
为什么啊!!!!!搞不明白 心力交瘁!
下面是对应的Class
using MongoDB.Bson.Serialization.Attributes;
namespace ETModel
{
[BsonIgnoreExtraElements]
public class AnnouncementInfo : Entity
{
public string Filename { get; set; }
}
}
using MongoDB.Bson.Serialization.Attributes;
namespace ETModel
{
/// <summary>
/// 账号信息
/// </summary>
[BsonIgnoreExtraElements]
public class AccountInfo : Entity
{
//用户名
public string Account { get; set; }
//密码
public string Password { get; set; }
public string NickName { get; set; }
public float PosX { get; set; }
public float PosY { get; set; }
public float PosZ { get; set; }
}
}
下面是在数据库里截图
所以我做错了什么呢。麻烦大家给点提示谢谢。