6

是否可以在没有 LINQ 的情况下使用实体框架(linq to entity)?

4

2 回答 2

12

不清楚分别使用 Linq to Entities 和 EF 是什么意思。那是一个单一的库EntityFramework.dll。如果要在普通 SQL 上编写查询,可以使用类的SqlQuery()方法DbSet

var users = context.Users.SqlQuery("SELECT * FROM dbo.Users").ToList();

在这种情况下,EF 仅充当映射器,但它不生成查询。

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

请记住 - Linq 已集成到语言中。最好花一些时间绕过它,而不是避免它。Linq 非常强大,您不仅可以将它用于数据库访问,还可以用于日常处理内存中的集合、xml、数据集等。

于 2013-06-11T15:25:35.067 回答
6

是的,有可能,但不确定你为什么会这样做。如果您打算使用这样的查询:

var users = context.Users.SqlQuery("SELECT * FROM dbo.Users").ToList();

如上所述,那么为什么不完全放弃 EF 并使用dapper 之类的东西,它非常易于使用且速度非常快且开销更少。在没有 linq 的情况下使用 EF 会给您带来 EF 的所有不好的部分(膨胀、速度慢),而没有 LINQ 查询功能的好处,这使得它如此强大。

于 2013-06-11T15:41:11.550 回答