替换实体框架中使用的硬编码SQL选择查询



我有以下代码:

context.Database.SqlQuery<MyEntityType>("Select a,b from MyTableA inner join MyTableB on  MyTableA.column = MyTableB.column);

这很好,它返回了我的MyentityType列表,里面充满了mytable和mytableb。

问题在于我在CSHARP文件中选择了精选的硬编码。我想将其放在SQL对象中,然后将此SQL对象的名称放在那里。但是我不知道该怎么做。我是否必须将其放入存储的procudre或功能中?如果是,只是用此功能的名称替换我的硬编码查询就足够了吗?

事先感谢您的帮助

我通常将存储的procs用于这样的自定义查询,是的,您只需使用proc的名称访问它:

context.Database.SqlQuery<MyEntityType>("my_stored_proc")

您也可以使用采用参数的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)

最新更新