ApplicationDbContext中的GetTable:IdentityDbContext <applicationuser>

时间:2016-02-25 12:57:55

标签: c# entity-framework linq

我试图将我的LinQ语句转换为预编译语句。

我使用本指南:LinQ opti

我构建了这样的数据库连接:

public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
{
    public ApplicationDbContext()
        : base("DefaultConnection")
    {
    }
    public DbSet<UserType> UserType { get; set; }
}

这个Static类看起来像这样:

public static class clsCompiledQuery
{
    //UserType
    public static Func<ApplicationDbContext, string, IQueryable<UserType>>
        getUserTypeByCode = CompiledQuery.Compile((ApplicationDbContext db, string UserTypeCode)
            => from tbUserType in db.GetTable<UserType>()
              where tbUserType.UserTypeCode == "PAR"
                select tbUserType);

}

db.GetTable()在ApplicationDbContext

中不可用

有没有办法从ApplicationDbContext创建GetTable?

这对我来说是个新的理由,我在这方面有点迷失。 这个任务/主题的原因是LinQ很慢,我需要找到更好的性能。

1 个答案:

答案 0 :(得分:1)

由于您正在使用EF6 自动编译,无论代码运行的.net framework是什么。

您在问题中提供的链接的日期是2009年,当时预编译查询是有意义的。

提供一点历史

  • EF6是第一个独立于.net框架的版本

  • 如果在框架4.5 +

  • 中运行,EF4和EF5可以利用预编译的功能