我正在使用System.Linq.Dynamic
来支持动态查询构建。我需要在OrderBy / Where字符串中调用自定义SQL函数。
通过使用DBContext
向我的DbFunction
引入SQL函数,我能够在静态链接到实体中达到上述要求。但这不适用于动态查询。
下面是工作静态linq的示例,其后是不工作的动态linq,TestDBContext.GetText是Sql函数接受两个字符串并返回字符串。
var query = from user in TestDBContext.User
join address in TestDBContext.Address on user.Id equals address.UserId
orderby TestDBContext.GetText(address.Country, "1")
select address;
现在,我需要在动态Linq上做同样的事情
var query = from user in TestDBContext.User
join address in TestDBContext.Address on user.Id equals address.UserId
select address;
query = query.OrderBy("TestDBContext.GetText(address.Country, '1') ASC");
有没有简单的方法可以使用System.Linq.Dynamic
来完成此操作?还是另一个包?任何想法都可能有所帮助。