我有以下代码:
context.Database.SqlQuery<MyEntityType>("Select a,b from MyTableA inner join MyTableB on MyTableA.column = MyTableB.column);
这很好用,它返回一个MyEntityType列表,其中填充了MyTable和MyTableB。
问题是我在我的csharp文件中选择了硬编码。我想把它放在一个sql对象中,然后把这个sql对象的名称放在那里。但我不知道该怎么做。我必须把它放在存储的proecudre或函数中吗?如果是,只是用我的硬编码查询替换此函数的名称或存储过程就足够了吗?
提前感谢您的帮助
答案 0 :(得分:0)
我通常使用存储过程来进行这样的自定义查询,是的,您只需使用proc的名称访问它:
context.Database.SqlQuery<MyEntityType>("my_stored_proc")
您也可以使用带参数的过程执行此操作:
var my_param = new SqlParameter("@param1", System.Data.SqlDbType.Int);
my_param.Value = 123;
context.Database.SqlQuery<MyEntityType>("my_stored_proc_with_params @param1", my_param)