Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 存储库模式achitecture中存储过程方法的文件_C#_Entity Framework_Stored Procedures_Repository Pattern - Fatal编程技术网

C# 存储库模式achitecture中存储过程方法的文件

C# 存储库模式achitecture中存储过程方法的文件,c#,entity-framework,stored-procedures,repository-pattern,C#,Entity Framework,Stored Procedures,Repository Pattern,我正在使用EF6,但在我的项目中调用的SP太多 我已经将这些方法放在MyDbContext.cs中,但是由于SP方法太多,我不想挤满MyDbContext.cs。我想将这些方法放在另一个文件中。还有别的选择吗 有什么好的例子或文章吗?看起来您是在使用存储过程还是ORM(在本例中是EF6)之间进行选择 在这种情况下,您可以阅读这篇好文章,帮助您决定: 编辑: 据我所知,在实体框架中使用存储过程不是最佳实践,它只会减少您首先选择ORM的原因 但是,如果您坚持,您可能会发现本文非常全面地涵盖了您所谈

我正在使用EF6,但在我的项目中调用的SP太多

我已经将这些方法放在MyDbContext.cs中,但是由于SP方法太多,我不想挤满MyDbContext.cs。我想将这些方法放在另一个文件中。还有别的选择吗


有什么好的例子或文章吗?

看起来您是在使用存储过程还是ORM(在本例中是EF6)之间进行选择

在这种情况下,您可以阅读这篇好文章,帮助您决定:

编辑:

据我所知,在实体框架中使用存储过程不是最佳实践,它只会减少您首先选择ORM的原因

但是,如果您坚持,您可能会发现本文非常全面地涵盖了您所谈论的主题:

简言之:

  • 是,将所有SP调用放在DbContext中
  • 如果可能的话,在使用EF时避免使用SqlDataReader,否则您将再次使用ADO.NET将其搞乱
  • 编辑:

    其他提示:


    我刚刚意识到,您必须处理如此多的SP,这可能会使DbContext类过于拥挤而无法管理。在这种情况下,只需使用分部类将许多SP组织到单独的文件中,这样您就可以更轻松地管理它们。

    否。我正在调用SP,然后使用IObjectContextAdapter将SqlDataReader对象映射到模型对象。我在“public List dsp_GetDetails()”方法中这样做。我的问题是,我应该将此方法放在MyDbContext.cs中吗?我刚刚编辑了我的答案,以满足您的需要(希望如此)。你好,Erlanga,感谢您的回复。我已经将这些方法放在MyDbContext.cs中,但由于SP方法太多,我不想挤满MyDbContext.cs,所以我要求提供一个替代方法。嗨,Nands,别忘了您可以选择使用分部类将DbContext类拆分为多个文件,这样您就可以更好地管理这些方法。感谢Erlanga,我将使用你的部分课程建议!如果你能把它作为一个单独的答案,我会把它标记为答案。