2013-06-11 68 views

回答

9

这并不清楚你的意思是分别使用Linq to Entities和EF。这是一个单独的库EntityFramework.dll。如果你想编写查询在普通的SQL,你可以用DbSet类的SqlQuery()方法做到这一点:

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

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

UPDATE根据你的意见,你想避免参考Linq。答案是 - 你不能这样做,因为EF参考System.Linq命名空间。考虑使用NHibernate和Criteria API。

还记得 - Linq已经融入了语言。最好花一些时间避免它,而不是避免它。 Linq功能非常强大,不仅可以用于数据库访问,还可以用于日常记忆收藏,XML,数据集等工作。

+1

+1尽可能地接近你,即使它不是很方便。 –

+0

我想删除所有引用linq。考虑我不喜欢linq –

+1

@ B413即使不方便,你也可以使用'context.Database.SqlQuery',这几乎是你可以去的最低级别,并且不使用Linq。在页面底部有一个示例[这里](http://msdn.microsoft.com/en-us/data/jj592907.aspx)。 –

4

是的,有可能,但不知道为什么你会。如果你要去使用的查询是这样的路线:

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

如上所说,那么为什么不EF完全抛弃并用较少的开销使用类似dapper,这是非常容易使用和非常快。不使用linq的情况下使用EF会给你EF的所有不好的部分(膨胀,慢速),而没有LINQ查询功能的好处,这使得它非常强大。

相关问题