praeclarum sqlite-net Table()。Where(Expression)赋予成员访问权限,无法编译表达式异常C#

时间:2017-05-04 13:57:06

标签: c# database sqlite xamarin sqlite-net

当我使用时,我正在使用praeclarum sqlite-net library for xamarin c#:

import com.github.mrpowers.spark.fast.tests.DatasetComparer

class DatasetSpec extends FunSpec with SparkSessionTestWrapper with DatasetComparer {

  import spark.implicits._

    it("aliases a DataFrame") {

      val sourceDF = Seq(
        ("jose"),
        ("li"),
        ("luisa")
      ).toDF("name")

      val actualDF = sourceDF.select(col("name").alias("student"))

      val expectedDF = Seq(
        ("jose"),
        ("li"),
        ("luisa")
      ).toDF("student")

      assertSmallDatasetEquality(actualDF, expectedDF)

    }

  }

}

它给出了异常:成员访问无法编译表达式

CurrentId和Currentname都有一个值。 该表确实存在其列。

MyClass是:

var item = sQLiteConnection.Table<MyClass>().Where(e =>  (e.Id == CurrentId) && (e.name == Currentname));

1 个答案:

答案 0 :(得分:1)

传递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();
}

之前的代码将抛出=&gt; exception:成员访问无法编译表达式。

但是,当我将CurrentId作为参数传递时,它可以正常工作:

public list<MyClass> GettAll(string id)
{
  var item = sQLiteConnection.Table<MyClass>().Where(e =>  (e.Id == id) && (e.name == Currentname));

  return item.ToList();
}

我仍然不知道有什么区别!

希望这会对某人有所帮助。