相关疑难解决方法(0)

在Linq to SQL中处理DataContext后无法访问相关数据

重述了我的问题,旧文本在下面

由于我仍然希望得到答案,我想重申我的问题.Image我有一个带有两个列表的GUI,一个列表显示数据库的所有条目tblOrders,另一个列表显示每个订单中的项目.

我可以使用Linq2sql或EF从数据库中获取所有订单,如下所示:

using (DataClasses1DataContext DataContext = new DataClasses1DataContext())
    ListOfOrders = DataContext.tblOrder.ToList();
Run Code Online (Sandbox Code Playgroud)

我可以在列表中显示这些顺序或datagridview.然后选择其中一个作业,我想从表中访问实体集合tblItems.我可以这样做:

ListOfOrders.First().tblItems.toList();
Run Code Online (Sandbox Code Playgroud)

除了我不能,因为我需要DataContext处理掉的.这在某种程度上是有道理的,因为我不能保证自从我检索ListOfOrders. So ideally I would like to check if there has been an addition to a tblOrder.tblItems集合后没有添加到该订单的新项目,并且只在需要时才从服务器重新检索该集合.

背景是,我的模型有点复杂:它由Orders组成,它由Parts组成,包括Tasks.因此,为了评估每个订单的进度,我必须检索属于订单的所有部件,并且对于每个订单,我必须看到已经完成了多少任务.在一个有200个作业的数据库中,每个都有1到10个部分,这只会让我的程序在响应性方面变慢...

谁能帮我?

原始问题

我发现了很多问题DataContext,但我还没有找到解决问题的方法.如果我执行以下操作:

using (DataClasses1DataContext DataContext = new DataClasses1DataContext())
    ListOfOrders = DataContext.tblOrder.ToList();
Run Code Online (Sandbox Code Playgroud)

这给了我一个表中实体的tblOrder列表.但现在我想这样做:

DataTable Orders = new DataTable();
Orders.Columns.Add("Order-ID", typeof(int));
Orders.Columns.Add("Order-Name", typeof(string));
Orders.Columns.Add("Order-Items", typeof(string));

dataGridView1.DataSource = Orders;

foreach (tblOrder Order in ListOfOrders)
{
    var …
Run Code Online (Sandbox Code Playgroud)

c# sql-server datacontext entity-framework linq-to-sql

5
推荐指数
1
解决办法
2644
查看次数