Метод расширения C # для ObjectResult <T>? - PullRequest
0 голосов
/ 22 октября 2010

Я использую хранимые процедуры в Entity Framework.Допустим, у меня есть такая процедура:

    public static int DoSth(decimal id)
    {
        return (int)Adapter.my_proc(id).First();
    }

, так как я не хочу получать элемент First (), а затем приводить его как (int) каждый раз, когда мне нужен метод расширения, который выполняетэто для меня (получает Первый элемент и затем бросает его как T).Как это будет выглядеть?

1 Ответ

3 голосов
/ 22 октября 2010

Я не уверен, что понимаю, в чем ваша проблема.Вот код для простого метода расширения, который принимает ObjectResult<T>, получает первый элемент коллекций и приводит его к T (помещает метод в отдельный статический класс).

public static T Fetch<T>(this ObjectResult<T> result)
{
    return (T)result.First();
}

И затем вы можете вызвать его как:

public static int DoSth(decimal id)
{
    return Adapter.my_proc(id).Fetch<int>();
}

Это то, о чем ты думаешь?

...