要在连接的结果集中指定的字段太多

时间:2010-06-19 05:15:08

标签: linq-to-sql join hierarchy flatten

所以类似的问题一直没有得到答案......

我有一个与分支表相关的统计表。统计记录包含特定银行分行的pc统计数据。

Branch
+Code
+Name
+Area
...

Stats
+BranchCode
+IP
+UpSpeed
+DownSpeed
...

这是我的linq查询...

var stats = from st in store.Stats
                        join b in store.Branches on st.BranchCode equals b.Brcd
                        select new
                        {
                            st.ID,st.IP,st.Name,b.Brcd,b.Branch_Name..............
                        };

问题是st和b有很多字段,现在我想我会输入所有字段......但是没有解决方案吗? *防止输入所有字段...类似*通配符?

尝试交叉但是类型需要相同!

由于 吉丁

1 个答案:

答案 0 :(得分:1)

1

var stats =
  from st in store.Stats 
  join b in store.Branches on st.BranchCode equals b.Brcd 
  select new 
  { 
    Stats = st,
    Branch = b
  };

使用一个统计信息和一个分支创建匿名实例。


2

var stats =
  from b in store.Branches
  join st in store.Stats 
    on b.Brcd equals st.BranchCode
    into branchstats
  select new 
  { 
    Branch = b
    Stats = branchstats
  };

使用一个分支及其统计信息创建匿名实例。


3

var stats =
  from b in store.Branches
  select new 
  { 
    Branch = b
    Stats = b.Stats
  };

2 相同,如果设计器中的两种类型之间存在关联,则会在每种类型上生成关系属性。


4

DataLoadOptions dlo = new DataLoadOptions()
dlo.LoadWith<Branch>(b => b.Stats);
store.LoadOptions = dlo;

List<Branch> branches = store.Branches.ToList();

此处指定了DataLoadOptions,可在加载任何分支时自动填充Stats属性。