在IQueryable上执行文本SQL查询

时间:2018-04-20 05:21:36

标签: c# sql linq ienumerable iqueryable

我正在尝试使用SQL查询将public T GetService<T>() where T : new() { if(!_services.ContainsKey(typeof(T))) { _services[typeof(T)] = new T(); } return _services[typeof(T)] as T; } 转换为IQueryable。我不确定它是否可能。

IEnumerable

var id = "123"; string queryString = "SELECT * FROM c WHERE c.ID = " + id; var dataSource = new List<Book> { new Book{ ID = "123", Title = "HarryPotter"}}.AsQueryable(); var expected = dataSource.ConvertToIEnumerable(queryString); //IEnumerable type 变量的类型为dataSource。有没有办法通过IQueryable变量来转换queryString变量的类型为expected

1 个答案:

答案 0 :(得分:3)

您要做的是使用在内存中查询List<T>。我不相信.NET Framework中有内置的方法。

可以做的是使用为集合提供类似SQL或lambda语法的LINQ

var id = "123";

var dataSource = new List<Book>
{
    new Book{ ID = "123", Title = "HarryPotter"}
};

var find = dataSource.Where(i => i.ID == id);