【发布时间】:2014-05-22 15:42:21
【问题描述】:
我在我的项目中使用 Linq-To-Entity。但是,在某些情况下,我会犹豫使用Stored Procedure 或LINQ to Table or View。但是,由于 pleasent 语法,我通常更喜欢使用 LINQ。我已经搜索了谷歌,但没有找到我的问题的详细答案。
让我们考虑一下这段代码:
using (NorthwindEntities db = new NorthwindEntities())
{
var custs = from c in db.Customers where c.City == "London" select c;
var edus = from c in db.Educations where c.Education != "2" select c;
// ... and so on
}
问题:
1. 它是否为每个查询打开一个新连接?如果是这样,那么不建议单独使用上述查询吗?
2. 另外,您能否建议我在任何情况下我必须使用存储过程而不是 LINQ?
【问题讨论】:
-
当查询对 linq 来说太复杂(不可读)或不支持 EF 中的空间类型等某些内容时,我使用了 sproc 而不是 linq。另请阅读:stackoverflow.com/questions/14530/…
-
您必须在 EF 中使用存储过程的唯一情况是您想使用 EF 不支持的东西。一个示例是使用全文搜索命令(例如 CONTAINS),或者如果您需要在 xml 列上编写 XPath 查询。
标签: c# linq entity-framework