Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.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# 如何将EF ObjectContext传递给多个函数?_C#_Wpf_Entity Framework - Fatal编程技术网

C# 如何将EF ObjectContext传递给多个函数?

C# 如何将EF ObjectContext传递给多个函数?,c#,wpf,entity-framework,C#,Wpf,Entity Framework,我有一个WPF应用程序,它的表单可以在一次单击保存按钮时更新多个相关表。我想将保存代码放入如下所示的单独函数中 这样行吗?如何在一个ObjectContext和一个SaveChanges调用中实现这一点 private void SaveEntity() { using (var oContext = new MyEntities()) { SaveEntityInfo();

我有一个WPF应用程序,它的表单可以在一次单击保存按钮时更新多个相关表。我想将保存代码放入如下所示的单独函数中

这样行吗?如何在一个ObjectContext和一个SaveChanges调用中实现这一点

        private void SaveEntity()
        {
            using (var oContext = new MyEntities())
            {
                SaveEntityInfo();
                SaveOwners();
                SavePartners();
                SaveOfficers();
                SaveDirectors();
                oContext.SaveChanges();
            }
        }

它将进行一些更改。您可以通过以下方式更改代码:

private void SaveEntity()
{
    using (var oContext = new MyEntities())
    {
        SaveEntityInfo(oContext);
        SaveOwners(oContext);
        SavePartners(oContext);
        SaveOfficers(oContext);
        SaveDirectors(oContext);
        oContext.SaveChanges();
    }
}

//One of multiple save methods
private void SaveEntityInfo(MyEntities context)
{
    //Add something to context
    //Remove something from context
    //Update something in context
    //But never use context.Save() here
    //Let SaveChanges() only calls in your SaveEntity() method
}

需要明确的是,您希望UPDATE语句都在最后运行,还是实际在每个方法中运行?换句话说,“Save”函数是什么样子的?将
oContext
作为参数传递给方法。这里的问题是什么?这就是我过去解决这个问题的方法。