I’m writing a new project in C# with a number of SQL queries in it. Some are relatively large and complex. I want to know what the best way to store them is. Ideally I would create stored procedures on the database, but the database is used by many other applications so it’s better if I can keep the procedures which are specific to my application in my application.
Options seem to be:
- a string literal (
const string query ="Select * From MyTable")- Pros: simple, short
- Cons: no Syntax highlighting, messy for long queries
- Create a file for each query as
QueryName.sql- Pros: syntax highlighting, neater for large, complex queries
- Cons: lots of files for lots of queries (one query per file), maybe slower to read query from content file?
- Any other ideas?
As an additional thought, is there a way to easily generate strongly typed class definitions from the SQL queries?
Another option would be:
4: Create a file for each query as
QueryName.sqlbut make it an embedded resource in your assembly. That way, you don’t have physical files on disk, but your SQL queries are nicely tucked into their own file in your Visual Studio solution, and you can easily extract the SQL text from those embedded resources into your
SqlCommandobjects.Check out these resources to get you started: