使用entityframework动态查询调用自定义SQL函数

时间:2016-01-25 12:47:45

标签: entity-framework linq dynamic

我正在使用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来完成此操作?还是另一个包?任何想法都可能有所帮助。

0 个答案:

没有答案