У меня есть 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 для извлечения данных и помещения их в объекты. код ниже
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();
}
Теперь я хочу получить подсистемы для каждого идентификатора записи и поместить их в свойство FSubsystems Fitem . Как я могу это сделать ?
Здесь я показываю только одно отношение «один ко многим» к FItem, то есть Fsubsystem. Но у меня есть много таблиц для Fitem, таких как FReferenc, FUnit и т. д. Для всех внешних ключей есть сам RecordId.
Можно ли это сделать с помощью запроса linq? или я должен использовать некоторую технику diff?