标签: datarelation

LINQ是否使用DataRelations来优化连接?

我无法在任何地方找到答案,在我开始使用Reflector生成代码之前我认为值得问:

假设我在DataSet中对DataTables运行以下LINQ查询:

var list = 
   from pr in parentTable.AsEnumerable()
   join cr in childTable.AsEnumerable() on cr.Field<int>("ParentID") equals pr.Field<int>("ID")
   where pr.Field<string>("Value") == "foo"
   select cr;
Run Code Online (Sandbox Code Playgroud)

如果父表与使用显示的关键字段的子表之间存在DataRelation,LINQ会使用它吗?也就是说,它会在父表中找到Value为"foo"的行,然后调用GetChildRows项目子行吗?

或者这是我必须明确指定的内容吗?(如果是这样,我该怎么做?)

c# linq join dataset datarelation

6
推荐指数
1
解决办法
2270
查看次数

DataGridView中的DataRelation

我有一个填充了两个表的DataSet:

dbSet = new DataSet();
//DataTable and DataRelation
DataTable dtStudent = new DataTable("Student");


//fill datatable 1
dtStudent.Columns.Add("Id", typeof(int));
dtStudent.Columns.Add("Name", typeof(string));
dtStudent.Columns.Add("TownId", typeof(int));

dtStudent.Rows.Add(new object[] { 1, "Arthur", 1 });
dtStudent.Rows.Add(new object[] { 2, "Stefan", 2 });


DataTable dtTown = new DataTable("Town");
dtTown.Columns.Add("Id", typeof(int));
dtTown.Columns.Add("Name", typeof(string));

dtTown.Rows.Add(new object[] { 1, "KW",});
dtTown.Rows.Add(new object[] { 2, "Perg", });

dbSet.Tables.Add(dtStudent);
dbSet.Tables.Add(dtTown);
Run Code Online (Sandbox Code Playgroud)

然后我有这两个表的DataRelation.所以我想用他的身份证,姓名和他的镇名来打印学生.这就是我创建DataRelation的原因.

//DataRelation
DataColumn parentCol, childCol;
childCol = dbSet.Tables["Town"].Columns["Id"];
parentCol = dbSet.Tables["Student"].Columns["TownId"];

DataRelation dr;
dr = new DataRelation("DataRelation", parentCol, childCol);

dbSet.Relations.Add(dr); …
Run Code Online (Sandbox Code Playgroud)

c# datagridview datarelation

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

标签 统计

c# ×2

datarelation ×2

datagridview ×1

dataset ×1

join ×1

linq ×1