我正在C#中编写一个包含大量SQL查询的新项目。有些相对较大且复杂。我想知道存储它们的最佳方法是什么。理想情况下,我会在数据库上创建存储过程,但许多其他应用程序都使用该数据库,所以如果我能在我的应用程序中保留特定于我的应用程序的过程,那就更好了。
选项似乎是:
const string query ="Select * From MyTable"
)
QueryName.sql
另外一个想法是,有没有办法从SQL查询中轻松生成强类型类定义?
答案 0 :(得分:21)
另一种选择是:
4:为每个查询创建一个文件QueryName.sql
但要使其成为装配中的嵌入资源。这样,您在磁盘上没有物理文件,但您的SQL查询很好地隐藏在Visual Studio解决方案中的自己的文件中,您可以轻松地将SQL文本从这些嵌入的资源中提取到SqlCommand
个对象中
查看这些资源以帮助您入门:
答案 1 :(得分:2)
为什么不简单地使用Entity框架或Linq-to-SQL
如果您有一个名为Foos yoiu的表,最终会得到如下代码:
using(var db = new MyEntityBase()){
var selectedFoo = from foo in db.Foos
where foo.Bar > 4
select foo;
//Do stuff
}
反过来转换为SQL,如:
select * from Foos where Bar = 4
上面的C#代码都是强类型的,Entity框架将为您创建所有需要的数据类。
答案 2 :(得分:0)
我会选择像EF或亚力士这样的ORM。