praeclarum sqlite-net Table().Where(Expression) gives Member access failed to compile expression 异常C#
praeclarum sqlite-net Table().Where(Expression) gives Member access failed to compile expression exception C#
我正在使用 xamarin c# 的 praeclarum sqlite-net 库,当我使用 :
var item = sQLiteConnection.Table<MyClass>()
.Where(e => (e.Id == CurrentId) && (e.name == Currentname));
出现异常:成员访问编译表达式失败
CurrentId 和 Currentname 都有值。
table 确实存在其列。
我的班级是:
public class MyClass
{
[Ignore]
public List<ClassB> Bs{ get; set; }
public string BsAsJson { get; set; }
public string Datestamp { get; set; }
[PrimaryKey]
public string ClassId { get; set; }
public string SomeId { get; set; }
public string name { get; set; }
public MyClass ()
{ }
public MyClass (string datestamp, string id)
{
Bs= new List<ClassB>();
Datestamp = datestamp;
ClassId = id;
name= "Bagera";
SomeId= "SomeValue";
}
}
将 CurrentId 作为参数传递解决了我的问题。
之前,我使用这样的函数,其中 Current Id = StaticClassA.MyStaticList[StaticIndex].Id
public list<MyClass> GettAll()
{
var item = sQLiteConnection.Table<MyClass>()
.Where(e => (e.Id == CurrentId) && (e.name == Currentname));
return item.ToList();
}
之前的代码会抛出=>异常:成员访问编译表达式失败。
但是,当我将 CurrentId 作为参数传递时,它工作正常:
public list<MyClass> GettAll(string id)
{
var item = sQLiteConnection.Table<MyClass>()
.Where(e => (e.Id == id) && (e.name == Currentname));
return item.ToList();
}
我还是不知道有什么区别!
希望这会对某人有所帮助。
我正在使用 xamarin c# 的 praeclarum sqlite-net 库,当我使用 :
var item = sQLiteConnection.Table<MyClass>()
.Where(e => (e.Id == CurrentId) && (e.name == Currentname));
出现异常:成员访问编译表达式失败
CurrentId 和 Currentname 都有值。 table 确实存在其列。
我的班级是:
public class MyClass
{
[Ignore]
public List<ClassB> Bs{ get; set; }
public string BsAsJson { get; set; }
public string Datestamp { get; set; }
[PrimaryKey]
public string ClassId { get; set; }
public string SomeId { get; set; }
public string name { get; set; }
public MyClass ()
{ }
public MyClass (string datestamp, string id)
{
Bs= new List<ClassB>();
Datestamp = datestamp;
ClassId = id;
name= "Bagera";
SomeId= "SomeValue";
}
}
将 CurrentId 作为参数传递解决了我的问题。
之前,我使用这样的函数,其中 Current Id = StaticClassA.MyStaticList[StaticIndex].Id
public list<MyClass> GettAll()
{
var item = sQLiteConnection.Table<MyClass>()
.Where(e => (e.Id == CurrentId) && (e.name == Currentname));
return item.ToList();
}
之前的代码会抛出=>异常:成员访问编译表达式失败。
但是,当我将 CurrentId 作为参数传递时,它工作正常:
public list<MyClass> GettAll(string id)
{
var item = sQLiteConnection.Table<MyClass>()
.Where(e => (e.Id == id) && (e.name == Currentname));
return item.ToList();
}
我还是不知道有什么区别!
希望这会对某人有所帮助。