如何使用LINQ获取针对DB表的组合结果?

时间:2015-08-11 04:54:21

标签: c# linq

我有一个像下面这样的对象结构。

    public class Response
    {
       public Security[] SecurityList{get;set;}
    }
    public class Security
    {
      public string Symbol{get;set;}
      public AssetClass[] AssetClassList{get;set;}
    }
    public class AssetClass
    {
      public string class{get;set;}
    }

基于上述结构,数据可以采用这种xml格式。

    <Response>
     <SecurityList>
       <Security>
         <Symbol>IBM</Symbol>
         <AssetClassList>
           <AssetClass>
                <class>AAA</class>
           </AssetClass> 
           <AssetClass>
                <class>BBB</class>
           </AssetClass>  
          </AssetClassList>
        </Security>
        <Security>
         <Symbol>HP</Symbol>
         <AssetClassList>
           <AssetClass>
                <class>CCC</class>
           </AssetClass> 
           <AssetClass>
                <class>DDD</class>
           </AssetClass> 
        </Security>
      </SecurityList>
    </Response>

我有一个数据库表,它有一些公共资产类的参考数据,我需要为每个安全性提取所有数据。

这是表结构:

    AssetClass  Classified  Othercolumns
    AAA          Y          XYZ
    BBB          N          XYZ
    CCC          N          XYZ
    DDD          N          XYZ

我需要使用LINQ获得两个不同的结果集。

    Result 1-
    Symbol AssetClass  Classified Othercolumnsdata 
    IBM    AAA         Y          XYZ
    IBM    BBB         N          XYZ
    HP     CCC         N          XYZ
    HP     DDD         N          XYZ

目前我正在使用for-each循环,然后在资产类和表之间使用Linq,并将所有结果组合在一起用于每个安全性。有一种感觉应该有更好的方法来执行此操作 ??

结果2 - 对于任何证券,即使一个资产类别被归类为“Y”,也将被视为已分类。

    Symbol      IsClassified
    IBM          Y
    HP           N

谢谢!

0 个答案:

没有答案