我试图将我的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很慢,我需要找到更好的性能。
答案 0 :(得分:1)
由于您正在使用EF6
自动编译,无论代码运行的.net framework
是什么。
您在问题中提供的链接的日期是2009年,当时预编译查询是有意义的。
提供一点历史
EF6是第一个独立于.net框架的版本
如果在框架4.5 +