用于使用函数重载接受表达式参数的方法的智能感知

本文关键字:参数 方法 智能 感知 表达式 函数 重载 用于 | 更新日期: 2023-09-27 18:35:45

ServiceStack OrmLite 的 Select 方法可以接受Expression<Func<MyTable,bool>>作为参数。它也可以接受Func作为参数。我更喜欢使用 Expression 参数,但 VisualStudio 的智能感知总是认为我正在键入 Func 参数:

var connstr = @"Data Source=(localdb)'MSSQLLocalDB;Initial Catalog=mydb";
var factory = new OrmLiteConnectionFactory(connstr, SqlServerDialect.Provider);
using (var db = factory.Open())
{
    // using the Func<<SqlExpressionVisitor<MyTable>,SqlExpressionVisitor<MyTable>> overload
    var withvisitor = db.Select<MyTable>(v => v.Where(t => t.ID == 42));
    // using the Expression<Func<MyTable,bool>> overload
    // but the intellisense is still for the Func overload
    var withoutvisitor = db.Select<MyTable>(t => t.ID == 42);
}

有没有办法告诉VisualStudio我想使用表达式重载而不是Func重载(用于智能感知)?

用于使用函数重载接受表达式参数的方法的智能感知

使用 Visual Studio 2015。它足够聪明,可以检测到您打算键入表达式。