C# 将扩展方法从linq改为sql改为实体框架

C# 将扩展方法从linq改为sql改为实体框架,c#,linq,linq-to-sql,entity-framework,C#,Linq,Linq To Sql,Entity Framework,我正在将我的项目从使用Linq改为使用SQL,改为使用实体框架 我有一些扩展方法可以扩展LINQ创建的类,我想知道如何将它们改为使用实体 这里有一个例子 public static int GetPublishedArticlesCount(this Table<Article> source) { return GetPublishedArticles(source.Context as DataContext, null).Count(); }

我正在将我的项目从使用Linq改为使用SQL,改为使用实体框架

我有一些扩展方法可以扩展LINQ创建的类,我想知道如何将它们改为使用实体

这里有一个例子

public static int GetPublishedArticlesCount(this Table<Article> source)
    {
        return GetPublishedArticles(source.Context as DataContext, null).Count();
    }
public static int getpublishedarticlescont(此表源代码)
{
返回GetPublishedArticles(source.Context作为DataContext,null).Count();
}

此方法获取已发布文章的数量。不要使用
这个表
,我应该用什么来代替呢?

EntityFramework中表的模拟(linq 2 sql)是ObjectQuery

EntityFramework中表的模拟(linq 2 sql)是ObjectQuery

您可能需要使用这个类

public static int getpublishedarticlescont(此ObjectQuery源)

您可能需要使用该类

public static int getpublishedarticlescont(此ObjectQuery源)

如前一张海报所述,您可以使用ObjectQuery获得结果

要使该方法作为ObjectQuery&get count任何类型的扩展方法更通用,这可能会有所帮助:

public static int GetCount<T>(this ObjectQuery<T> query){
    return query.CreateQuery<T>(typeof(T).Name).Count();
}
publicstaticintgetcount(此ObjectQuery查询){
return query.CreateQuery(typeof(T).Name.Count();
}
注意:我是从头开始写这段代码的,可能有一些sytax错误


HTH.

正如前面的海报所述,您可以使用ObjectQuery获得结果

要使该方法作为ObjectQuery&get count任何类型的扩展方法更通用,这可能会有所帮助:

public static int GetCount<T>(this ObjectQuery<T> query){
    return query.CreateQuery<T>(typeof(T).Name).Count();
}
publicstaticintgetcount(此ObjectQuery查询){
return query.CreateQuery(typeof(T).Name.Count();
}
注意:我是从头开始写这段代码的,可能有一些sytax错误


HTH.

谢谢,这就是我想要的。谢谢,这就是我想要的。