用于接受具有Func重载的Expression参数的方法的IntelliSense

时间:2015-01-01 07:48:22

标签: c# intellisense ormlite-servicestack

ServiceStack OrmLite的Select方法可以接受Expression<Func<MyTable,bool>>作为参数。它也可以接受Func作为参数。我更喜欢使用Expression参数,但VisualStudio的intellisense总是认为我正在输入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我想使用Expression重载而不是Func one(用于intellisense)?

1 个答案:

答案 0 :(得分:0)

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