我有一个非常古老的项目,它是用Xamarin(现在是Visual Studio for Mac)编写的。
该项目适用于mysql数据库和entityframework。
当我尝试做一个非常基本的查询时
using (myentities db = myentities())
{
customer.where(c => ... any filter ...)
}
我得到这个例外:
System.MethodAccessException
Method `System.Data.DataView.get_RowPredicate()' is inaccessible from method `System.Data.LinqDataView.get_RowFilter()'
请注意
-我也不例外,表是空的。
-2年前在同一台计算机上运行良好!
任何的想法 ?
谢谢
最佳答案
LinqDataView
正在使用DataView
(通过继承并使用RowPredicate
of DataView
)
看起来LinqDataView
和DataView
是不兼容的版本,因此LinqDataView调用的DataView在编译时具有RowPredicate,但是您正在使用的DLL中的DataView没有(可访问的)RowPredicateLinqDataView
在System.Data.DataSetExtensions dll中,而DataView
在System.Data dll中。
因此,System.Data.DataSetExtensions dll与System.Data dll之间存在不兼容性。
仔细检查这些dll /软件包是否已正确更新/安装。 (也许还清除obj / bin文件夹并检查.configs的版本)
关于c# - Mac上的Visual Studio上的奇怪Linq异常,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56780417/