对对象使用 LINQ 查询
为了利用 LINQ 的优势,它与 NCache 使用 NCache询问 类,它实现了 可查询 提供的接口 .NET framework。这种集成允许用户使用 LINQ 查询来查询对象。
除了缓存初始化和前面提到的接口实现以及预期的新程序集引用和命名空间添加之外,使用 LINQ 查询不需要更改任何代码。其余代码无需对应用程序进行任何更改即可运行。
LINQ 查询:通过以下方式查询对象 NCache查询类
您可以使用以下任何受支持的 LINQ 运算符来检索 NCache 对象使用 NCache询问:
下面的代码演示了以下所有运算符的预期使用方式。
使用 LINQ 查询的先决条件
在使用 LINQ 查询之前,请确保满足以下先决条件:
- 了解与所有人员合作所需的标准先决条件 NCache 客户端功能请参阅给定页面 客户端 API 先决条件.
- 需要首先配置可搜索对象的索引及其属性,如我们关于 动态索引 和 配置查询索引 和管理员指南中。
- 有关 API 详细信息,请参阅: NCache询问.
LINQ 操作
以下代码使用 NCache询问 类使用我们讨论过的几个运算符来演示如何使用 NCache 使用 LINQ。
使用查询表达式
// Precondition: Cache is already connected
// Create custom class LINQ object
IQueryable<Product> products = new NCacheQuery<Product>(cache);
// LINQ query to search cache
IQueryable<Product> result = from prod in products where (prod.Category == "Beverages" || prod.Category == "Dairy") && prod.UnitsInStock > 10 select prod;
if (result != null)
{
foreach (Product product in result)
{
Console.WriteLine($"Product '{product.ProductName}' in Category '{product.Category}' has stock of '{product.UnitsInStock}' units");
}
}
else
{
Console.WriteLine($"No product found");
}
使用 Lambda 表达式
// Lambda expression for same query
IQueryable<Product> result = products.Select(prod => prod).Where(prod => ((prod.Category == "Beverages" || prod.Category == "Dairy") && prod.UnitsInStock > 10));
更多资讯
NCache 提供示例应用程序 NCache LINQ 上 GitHub上.
参见
.NET: Alachisoft.NCache.Linq 命名空间。