2

私は以下のような2つのモデルを持っています

public  class FItem
        {
            public FItem() { }

            public int RecordId { get; set; }
            public int MarketId { get; set; }
            public string ItemName { get; set; }
            public string ItemFamily { get; set; }
            public string HoverFamily { get; set; }
            public string ItemDesc { get; set; }                

            public IEnumerable<FSubsystem> FSubsystems { get; set; }
       }

   public class FSubsystem
        {
            public FSubsystem() { }

            public int FSubsystemId { get; set; }
            public int RecordId { get; set; } //Foreign key
            public int supplierId { get; set; }
            public int SubSystemTypeId { get; set; }
            public double Percentage { get; set; }
            public double? Value { get; set; }
        }

 public class FReferences
 {
     public FReferences() { }

     public int RecordID { get; set; } //Foreign key
     public int SourceID { get; set; }
     public DateTime SourceDate { get; set; }
     public string Reference { get; set; } 
     public int? ReferenceID { get; set; }
 }

そして、dapperを使用してデータをフェッチし、オブジェクトに配置します。コードはbelolwと同じです

using (var multi = mapperConnection.QueryMultiple("USP_FetchMarketRecords", parameters, (SqlTransaction)null, 1000000, CommandType.StoredProcedure))
            {
                    IEnumerable<MarketRecord.FItem> FItem = multi.Read<MarketRecord.FItem>().ToList();                        
                    IEnumerable<MarketRecord.FSubsystem> FSubsystem = multi.Read<MarketRecord.FSubsystem>().ToList();                        
            }

次に、各レコードIDのサブシステムを取得し、それらをFitemのFSubsystemsプロパティに配置します。これどうやってするの ?

ここでは、FサブシステムであるFItemとの1対多の関係のみを示しています。しかし、FReferenc、FUnitなどのFitemには1対多のテーブルがたくさんあります。すべての外部キーはRecordIditelfです。

これは、linqクエリを介して実行できますか?または、いくつかの差分手法を使用する必要がありますか?

4

1 に答える 1