FileNotFoundException:无法加载文件或程序集'System.Data.Entity'

时间:2017-09-22 15:38:44

标签: c# linq .net-standard-2.0

我正在尝试使用Linq解析动态表达式字符串

var x = Expression.Parameter(typeof(T), "x");
var e = Dynamic.DynamicExpression.ParseLambda(new[] { x }, null, "x.Id > 1");

var compiledDelegate = exp.Compile();

var values = new List<T>
{
    new T
    {
        Id = 1
    },
    new T
    {
        Id = 2
    }
};

var result = values.Where((Func<T, bool>)compiledDelegate);

尝试执行ParseLambda行时,代码会抛出以下异常

enter image description here

我使用的是net standard 2.0和Visual Studio 15.3.5。

我正在使用所有必要的ASP.NET核心内容来提取以下两个软件包。

  <PropertyGroup>
    <TargetFramework>netstandard2.0</TargetFramework>
    <NeutralLanguage>en</NeutralLanguage>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="System.Linq.Dynamic" Version="1.0.7" />
    <PackageReference Include="System.Linq.Expressions" Version="4.3.0" />
  </ItemGroup>
  <PropertyGroup>
    <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
    <GenerateBindingRedirectsOutputType>true</GenerateBindingRedirectsOutputType>
  </PropertyGroup>

1 个答案:

答案 0 :(得分:1)

通过更多的Google搜索,我发现System.Data尚未移植到.net标准2.0 API,因此System.Linq.Dynamic实际上与.net标准2.0不完全兼容。

enter image description here

相反,我找到了同一个程序集System.Linq.Dynamic.Core的另一个端口来完成这项工作。

enter image description here

相关问题