gpt4 book ai didi

.net - 表达式树不能包含动态操作

转载 作者:行者123 更新时间:2023-12-02 08:24:56 37 4
gpt4 key购买 nike

如果我尝试将动态类型值传递到 Entity Framework linq 查询中,则会收到此错误。

dynamic sname = "suraj";    // even object, var
AppUser appUser = Ctx.AppUsers.First(u => u.Name == sname);

如果我尝试首先将值存储在字符串中并使用它,我得到“对象引用错误”。

var name = "suraj";
string sname = new string(((string)name).ToCharArray());

AppUser appUser = Ctx.AppUsers.First(u => u.Name == sname);

最佳答案

看看DLINQ它允许您执行以下操作:

var query =
db.Customers.
Where("City = @0 and Orders.Count >= @1", "London", 10).
OrderBy("CompanyName").
Select("new(CompanyName as Name, Phone)");

请注意,查询中的表达式是可以在运行时动态构造的字符串。

该库有一些非常非常好的功能,包括到表达式树的隐式转换,您将能够顺利地将其集成到现有的表达式树中。

(当你回想起 2006 年左右编写的 DLINQ 时,它是非常令人惊奇的,并且仍然处于 C# 技术进步的前沿Download included in the \LinqSamples\DynamicQuery directory here )

关于.net - 表达式树不能包含动态操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5614574/

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com