Хотя мне нравится ответ, полученный Смаулой с использованием класса EntityExpressions, я думаю, что он слишком много делает. По сути, он бросает всю сущность в метод, выполняет сравнение и возвращает bool.
В моем случае мне понадобился этот EntityFunctions.TruncateTime () для создания группы, поэтому у меня не было даты для сравнения или bool для возврата, я просто хотел получить правильную реализацию для получения части даты. Поэтому я написал:
private static Expression<Func<DateTime?>> GetSupportedDatepartMethod(DateTime date, bool isLinqToEntities)
{
if (isLinqToEntities)
{
// Normal context
return () => EntityFunctions.TruncateTime(date);
}
else
{
// Test context
return () => date.Date;
}
}
В моем случае мне не понадобился интерфейс с двумя отдельными реализациями, но он должен работать точно так же.
Я хотел бы поделиться этим, потому что это делает мельчайшее возможное. Он только выбирает правильный метод для получения части даты.
Иногда мне нужно нажать escape, чтобы избавиться от всплывающего окна интеллекта, прежде чем использовать клавиши со стрелками для прокрутки списка перегрузки.
Я полагаю, что клавиши со стрелками - это быстрые клавиши, поскольку они работают на меня.
Какая команда вызывает всплывающую подсказку? Я знаю ярлык в Eclipse (ctrl+space), но это Eclipse...
В VS всплывающая подсказка показывает, когда вы набираете первую скобку, но если бы я хотел увидеть перегрузку метода, который уже реализован, как бы я это сделал?
Должен быть более простой способ:
Какая команда вызывает всплывающую подсказку? Я знаю ярлык в Eclipse ( Ctrl + Space ), но это Eclipse ...
В VS всплывающая подсказка отображается, когда вы вводите первую скобку, но если бы я хотел увидеть различные перегрузки методов для уже реализованного метода, как мне это сделать?
Нажмите Ctrl + Shift + Пробел , чтобы увидеть список перегрузки и аргументы.
См. Справочник по привязке клавиш Visual C # 2008 для получения дополнительных сочетаний клавиш.