是否可以在没有LINQ(linq to entities)的情况下使用实体框架?
答案 0 :(得分:11)
分别使用Linq to Entities和EF并不清楚你的意思。这是一个单独的库 EntityFramework.dll 。如果要在纯SQL上编写查询,可以使用DbSet
类的SqlQuery()方法执行此操作:
var users = context.Users.SqlQuery("SELECT * FROM dbo.Users").ToList();
在这种情况下,EF仅用作映射器,但它不会生成查询。
更新根据您的评论,您希望避免引用Linq。答案是 - 你不能这样做,因为EF引用了 System.Linq 命名空间。考虑将NHibernate与Criteria API一起使用。
请记住 - Linq已融入语言。最好花一些时间绕过它,而不是避免它。 Linq非常强大,您不仅可以将它用于数据库访问,还可以用于日常处理内存集合,xml,数据集等。
答案 1 :(得分:6)
是的可能,但不确定为什么会这样。如果你打算使用这样的查询:
var users = context.Users.SqlQuery("SELECT * FROM dbo.Users").ToList();
如上所述,那么为什么不完全抛弃EF并使用类似dapper的东西,这非常容易使用,而且速度快,开销少。在没有linq的情况下使用EF可以获得EF的所有不良部分(膨胀,速度慢),而没有LINQ查询功能的优势,这使得它非常强大。