0

List of ObjectLINQ ステートメント内でロードしようとしています。でもどうしたらいいのかわからない?以下のコードを見て理解してください

public class TechDisciplines
     {
            public string CustomerNumber { get; set; }            
            public string Status { get; set; }           
            public string Error { get; set; }    
            public IList<TechnicalDisciplines> TechnicalDisciplines { get; set; }
     }

     public class TechnicalDisciplines
     {
        public string Code { get; set; }
        public string Name { get; set; }     
        public string Cardinality { get; set; }   
        public string SubdisciplineName { get; set; }    
        public string SubdisciplineCode { get; set; }

    }

リンク

var results = from uctd in _context.USR_CUS_TECH_DISC
                   join ac in _context.APP_CODE on new {TECH_DISC = uctd.TECH_DISC }
                            equals new {TECH_DISC = ac.CODE} into APP_CODE_join
                   from ac in APP_CODE_join.DefaultIfEmpty()
                   join asc in _context.APP_SUBCODE on
                         new { TECH_SUB_DISC = uctd.TECH_SUB_DISC } equals
                         new {TECH_SUB_DISC = asc.SUBCODE} into APP_SUBCODE_join
                   from asc in APP_SUBCODE_join.DefaultIfEmpty()
                   where ac.SUBSYSTEM == "CUS" && (ac.TYPE == "TECH_DISC" || ac.TYPE == null) 
                   && (asc.TYPE == "TECH_DISC" || asc.TYPE == null) 
                   && uctd.MASTER_CUSTOMER_ID == CustomerNumber
                   select new TechDisciplines()
                          {
                             CustomerNumber = uctd.MASTER_CUSTOMER_ID,

                             //How to load List<TechnicalDisciplines> in list here????
                             TechnicalDisciplines = new TechnicalDisciplines()
                             {
                                 Code = uctd.TECH_DISC,
                                 Name = ac.DESCR,
                                 Cardinality = uctd.PRIMARY_FLAG,
                                 SubdisciplineCode = uctd.TECH_SUB_DISC,
                                 SubdisciplineName = asc.DESCR
                              },
                              Status = "OK"

                           };

List<TechnicalDisciplines>LINQステートメント内に入る方法は?

4

1 に答える 1

1

私が見る限り、クエリ結果に基づいて単一のTechDisciplinesインスタンスを作成する必要があるようです。TechnicalDisciplines

私があなたの要件を正しく理解している場合は、次のことを行う必要があります。

var tds = from uctd in _context.USR_CUS_TECH_DISC
               join ac in _context.APP_CODE on new {TECH_DISC = uctd.TECH_DISC }
                        equals new {TECH_DISC = ac.CODE} into APP_CODE_join
               from ac in APP_CODE_join.DefaultIfEmpty()
               join asc in _context.APP_SUBCODE on
                     new { TECH_SUB_DISC = uctd.TECH_SUB_DISC } equals
                     new {TECH_SUB_DISC = asc.SUBCODE} into APP_SUBCODE_join
               from asc in APP_SUBCODE_join.DefaultIfEmpty()
               where ac.SUBSYSTEM == "CUS" && (ac.TYPE == "TECH_DISC" || ac.TYPE == null) 
               && (asc.TYPE == "TECH_DISC" || asc.TYPE == null) 
               && uctd.MASTER_CUSTOMER_ID == CustomerNumber
               select new TechnicalDisciplines()
                         {
                             Code = uctd.TECH_DISC,
                             Name = ac.DESCR,
                             Cardinality = uctd.PRIMARY_FLAG,
                             SubdisciplineCode = uctd.TECH_SUB_DISC,
                             SubdisciplineName = asc.DESCR
                         };

var result = new TechDisciplines
             {
                  CustomerNumber = CustomerNumber,
                  TechnicalDisciplines = tds.ToList()
             };
于 2013-10-01T21:22:00.773 に答える