你如何在c#中嵌入sql查询

For*_*say 7 c# sql entity-framework

我正在C#中编写一个包含大量SQL查询的新项目.有些相对较大且复杂.我想知道存储它们的最佳方法是什么.理想情况下,我会在数据库上创建存储过程,但许多其他应用程序使用该数据库,因此如果我可以在我的应用程序中保留特定于我的应用程序的过程,那就更好了.

选项似乎是:

  1. 字符串文字(const string query ="Select * From MyTable")
    • 优点:简单,简短
    • 缺点:没有语法高亮,凌乱的长查询
  2. 为每个查询创建一个文件 QueryName.sql
    • 优点:语法突出显示,适用于大型复杂查询
    • 缺点:大量查询的文件很多(每个文件一个查询),从内容文件中读取查询的速度可能较慢?
  3. 还有其他想法吗?

另外一个想法是,有没有办法从SQL查询中轻松生成强类型类定义?

mar*_*c_s 21

另一种选择是:

4:为每个查询创建一个文件 QueryName.sql

但要使其成为装配中的嵌入式资源.这样,您在磁盘上没有物理文件,但您的SQL查询很好地隐藏在Visual Studio解决方案中的自己的文件中,您可以轻松地将SQL文本从这些嵌入的资源中提取到SqlCommand对象中.

查看这些资源以帮助您入门: