Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/334.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# Windows Phone 8中的多个LINQ到SQL数据上下文_C#_Linq_Windows Phone 8 - Fatal编程技术网

C# Windows Phone 8中的多个LINQ到SQL数据上下文

C# Windows Phone 8中的多个LINQ到SQL数据上下文,c#,linq,windows-phone-8,C#,Linq,Windows Phone 8,我在Windows Phone中创建了一个移动商务。此应用程序从服务器请求JSON数据并将其保存到本地数据库中。假设我有商店、产品和分类表。对于数据库,我为所有CRUD操作初始化单个DataContext,但是这个应用程序不能一次运行多个操作。例如,当我将一些数据添加到产品表中时,我无法从其他表中读取任何数据。我得到了无效的操作异常。然后,我尝试为每个操作初始化DataContext,我得到“尝试附加或添加一个非新实体,可能是从另一个DataContext加载的”异常。我的DataContext

我在Windows Phone中创建了一个移动商务。此应用程序从服务器请求JSON数据并将其保存到本地数据库中。假设我有商店、产品和分类表。对于数据库,我为所有CRUD操作初始化单个DataContext,但是这个应用程序不能一次运行多个操作。例如,当我将一些数据添加到产品表中时,我无法从其他表中读取任何数据。我得到了无效的操作异常。然后,我尝试为每个操作初始化DataContext,我得到“尝试附加或添加一个非新实体,可能是从另一个DataContext加载的”异常。我的DataContext问题有什么解决方案吗?下面是插入类别方法的示例代码

public bool InsertAll(StoreTable Store, List<Simplz.ViewModel.Category> Categories)
    {
        bool value = true;
        List<CategoryTable> _categories = new List<CategoryTable>();

        using (SimplzDataContext DataContext = new SimplzDataContext(ConnectionString))
        {

            try
            {
                foreach (Simplz.ViewModel.Category p in Categories)
                {
                    if (GetCategory(Store.ID, int.Parse(p.category_id)) == null)
                    {
                        _categories.Add(new CategoryTable(Store, p));
                    }

                }

                DataContext.Categories.InsertAllOnSubmit(_categories);
                DataContext.SubmitChanges();
            }
            catch (Exception exc)
            {
                value = false;
                Debug.WriteLine(exc.Message);
            }

            DataContext.Dispose();
        }

        return value;
    }
public bool InsertAll(存储表存储,列表类别)
{
布尔值=真;
列表_categories=新列表();
使用(SimpzDataContext DataContext=new SimpzDataContext(ConnectionString))
{
尝试
{
foreach(类别中的Simplez.ViewModel.Category p)
{
if(GetCategory(Store.ID,int.Parse(p.category_ID))==null)
{
_添加(新的分类表(Store,p));
}
}
DataContext.Categories.InsertAllOnSubmit(_Categories);
DataContext.SubmitChanges();
}
捕获(异常exc)
{
值=假;
Debug.WriteLine(exc.Message);
}
Dispose();
}
返回值;
}

@Aron是什么让您认为此代码没有在客户端上运行?OP明确表示他有一个客户端数据库。@DavidG误读了关于JSON.OP部分的问题。问题不是由于有多个
DbContext
s。问题是项目正在它们之间移动。在添加/插入新上下文之前,您可以将它们从原始的
DbContext
中分离出来,也可以在整个操作过程中使用相同的上下文。@Aron请给我演示分离实体的示例好吗?