使用ADO.NET实体LINQ Provider来建模复杂的SQL查询?

时间:2010-06-14 21:19:10

标签: tsql entity-framework linq-to-entities c#-4.0

我在 ADO.NET实体 LINQ to SQL 中发现的功能非常强大,它能够为复杂查询建模。我真的不需要实体或LINQ to SQL为我做的映射 - 我只需要能够模拟复杂表达式,可以将其转换为 T-SQL

我的问题是 - 我滥用太多了吗?我可以使用实体框架来建模查询吗?我是不是该?我知道我可以编写自己的自定义LINQ to SQL提供程序,但这在我所拥有的时间范围内无法处理。

模拟复杂T-SQL查询的最佳方法是什么?你如何处理OOP世界中的条件组别,订单,联接,工会等?鉴于我们对表达式树的可能性,使用 StringBuilders 进行此类工作会感觉太难看并且难以维护。

当我使用StringBuilder建模复杂的SQL查询时,我感到有点内疚!我的感觉和我必须将任何数字硬编码到不同于0或1的代码中的方式一样。感觉这会让你问自己是否有更好更清洁的方法...

我必须提到我正在使用C#4.0,但我并不是专门寻找这种语言的答案,而是在CLR 4的域中。是否有任何真正的企业库可以帮助在运行时构建复杂的SQL ?

1 个答案:

答案 0 :(得分:0)

如果您发现在LINQ而不是T-SQL中编写查询更容易(更不用说容易出错),为什么不呢?

没有法律规定您不能使用EF或L2S来帮助您编写T-SQL,然后直接自行执行T-SQL。

事实上,我认为这很有道理。

不要感到内疚!