Типизированный SqlParameter в Entity Framework - PullRequest
0 голосов
/ 13 марта 2011

Я хочу изменить следующее использование SqlParameter на более типизированную версию

private static void Update(int id, string lname)
{
  new RememberEntities().ExecuteStoreCommand(
    @"    UPDATE Users
          SET lname = @lname 
          WHERE Id = @id",
    new SqlParameter("lname", lname), new SqlParameter("id", id));
}

Например, я хочу иметь возможность написать что-то длинное в следующих строках:

private static void Update(int id, string lname)
{
  new RememberEntities().ExecuteStoreCommand(
    @"    UPDATE Users
          SET lname = @lname 
          WHERE Id = @id",
    new SqlParameterString("lname", lname), new SqlParameterInt("id", id));
}

Где второй параметр SqlParameterString() будет принимать строку и int в случае SqlParameterInt().Я пытался создать свой собственный, используя подклассы SqlParameter, увы, это sealed, так что не повезло.

Мне было интересно, каков рекомендуемый метод EF?

Ответы [ 2 ]

2 голосов
/ 13 марта 2011

Вы можете создавать типизированные фабричные методы и использовать только их, но вы действительно не можете не использовать конструктор SqlParameter напрямую (у вас будет эта проблема, даже если SqlParameter не будет запечатан, вы можете создать только свой собственный). метод обертки в таком случае).

1 голос
/ 13 марта 2011

Вы можете использовать хранимую процедуру (которая возвращает скалярное значение), затем с помощью EF 4.0 вы можете добавить «Импорт функции», а затем вы можете выполнить хранимую процедуру, как любую функцию C #.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...