是否可以在没有LINQ的情况下使用Entity Framework?

Bas*_*mme 6 linq linq-to-entities entity-framework

是否可以在没有LINQ(linq to entities)的情况下使用Entity Framework?

Ser*_*kiy 11

目前尚不清楚你分别使用Linq to Entities和EF是什么意思.这是一个单独的库EntityFramework.dll.如果要在纯SQL上编写查询,可以使用类的SqlQuery()方法来完成DbSet:

var users = context.Users.SqlQuery("SELECT * FROM dbo.Users").ToList();
Run Code Online (Sandbox Code Playgroud)

在这种情况下,EF仅用作映射器,但它不会生成查询.

更新根据您的意见,您希望避免引用Linq.答案是 - 你不能这样做,因为EF引用System.Linq命名空间.考虑将NHibernate与Criteria API一起使用.

请记住 - Linq已融入语言.最好花点时间绕过它,而不是避免它.Linq功能非常强大,您不仅可以将其用于数据库访问,还可以用于日常处理内存集合,xml,数据集等.

  • @ B413是不可能的,因为EF依赖于`System.Linq`命名空间中定义的`IQueryable`.考虑将NHibernate与Criteria API或Dapper一起使用. (2认同)

E.J*_*nan 6

是的,但是不确定为什么会这样.如果你打算使用这样的查询:

var users = context.Users.SqlQuery("SELECT * FROM dbo.Users").ToList();
Run Code Online (Sandbox Code Playgroud)

如上所述,那么为什么不完全抛弃EF并使用像dapper这样的东西,它非常容易使用,速度快,开销少.在没有linq的情况下使用EF可以获得EF的所有不良部分(膨胀,速度慢),而没有LINQ查询功能的优势,这使得它如此强大.