在 IQueryable 上执行文本 SQL 查询

Execute a textual SQL query on an IQueryable

我正在尝试使用 SQL 查询将 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 变量的类型转换为 IEnumerable?

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

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

var id = "123";

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

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