开发者

Changing an extention method from linq-to-sql to entity framework

开发者 https://www.devze.com 2022-12-24 16:37 出处:网络
I\'m changing my project from working with Linq-to-SQL to working with Entity Framework. I have some extention methods that extend the classes created by LINQ and I\'m wondering how to change them to

I'm changing my project from working with Linq-to-SQL to working with Entity Framework.

I have some extention methods that extend the classes created by LINQ and I'm wondering how to change them to work with the entities instead

Here's an example.

public static int GetPublishedArticlesCount(this Table<Article> source)
    {
      开发者_运维百科  return GetPublishedArticles(source.Context as DataContext, null).Count();
    }

This method gets the number of published articles. Instead of using this Table<Article>, what should I use instead?


You probably need to use the ObjectQuery<T> class.

public static int GetPublishedArticlesCount(this ObjectQuery<Article> source)


Analog of Table<> (linq 2 sql) in EntityFramework is ObjectQuery


As the previous poster metioned you could use ObjectQuery to get the result.

To make the method more generic as an extension method to ObjectQuery & get count of any type perhaps this might help:

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

NOTE: I am writing this code from top of my head, might has some sytax errors...

HTH.

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号