当我使用时,我正在使用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));
答案 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();
}
我仍然不知道有什么区别!
希望这会对某人有所帮助。