Изменение метода расширения с linq-to-sql на платформу сущностей - PullRequest
0 голосов
/ 21 марта 2010

Я изменяю свой проект с работы с Linq-to-SQL на работу с Entity Framework.

У меня есть несколько методов расширения, которые расширяют классы, созданные LINQ, и мне интересно, как их изменитьвместо работы с сущностями

Вот пример.

public static int GetPublishedArticlesCount(this Table<Article> source)
    {
        return GetPublishedArticles(source.Context as DataContext, null).Count();
    }

Этот метод возвращает количество опубликованных статей.Вместо использования this Table<Article>, что я должен использовать вместо этого?

Ответы [ 3 ]

2 голосов
/ 21 марта 2010

Вам, вероятно, нужно использовать класс ObjectQuery .

public static int GetPublishedArticlesCount(this ObjectQuery<Article> source)
1 голос
/ 21 марта 2010

Аналогом таблицы <> (linq 2 sql) в EntityFramework является ObjectQuery

0 голосов
/ 21 марта 2010

Как упоминалось в предыдущем постере, вы можете использовать ObjectQuery для получения результата.

Чтобы сделать метод более универсальным в качестве метода расширения ObjectQuery и получить счет любого типа, возможно, это может помочь:

public static int GetCount<T>(this ObjectQuery<T> query){
    return query.CreateQuery<T>(typeof(T).Name).Count();
}

ПРИМЕЧАНИЕ: я пишу этот код с головы до головы, возможно, есть некоторые синтаксические ошибки ...

НТН.

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