Как объединить таблицы с разными свойствами? - PullRequest
0 голосов
/ 21 января 2020

У меня есть две таблицы с разными столбцами.

Balance.cs

    public int Id { get; set; }
    public string Location { get; set; }
    public decimal Balance { get; set; }
    public string Asset { get; set; }
    public decimal ValueInUSD { get; set; }

Reserve.cs

    public decimal? Balance { get; set; }
    public string Asset { get; set; }

MainTable.cs

    public string Asset { get; set; }
    public decimal BalanceFromBalanceTable{ get; set; }
    public decimal BalanceFromReserveTable{ get; set; }

Моя цель - заполнить MainTable данными Баланс и Резерв таблицы. Проблема в том, что эти таблицы имеют разные свойства.

РЕДАКТИРОВАТЬ: Пример с данными по запросу.

**Balance table**
Asset - USD; Balance - 25; 
Asset - BTC; Balance - 10;
**rest of the columns are irrelevant

**Reserve table**
Asset - USD; Balance -200;
Asset - BTC; Balance - 1;

**Main Table**
Asset - USD; BalanceFromBalanceTable - 25; BalanceFromReserveTable - 200;
Asset - BTC; BalanceFromBalanceTable - 10; BalanceFromReserveTable - 1;

Ответы [ 2 ]

3 голосов
/ 21 января 2020
var mainTableCol = from b in balance
join r in reserve on b.Asset equals r.Asset
select new MainTable(){ Asset = b.Asset
                       ,BalanceFromBalanceTable = b.balance
                       ,BalanceFromReserverTable = r.balance }; 
0 голосов
/ 21 января 2020

Исправлено так:

    List<Balance> actives = item.GetItems();
    List<Reserve> liabilities = Reserve.GetLiabilities();
    List<MainTable> main= new List<MainTable>();
                foreach(var active in actives)
                {
                    foreach(var liability in liabilities)
                    {
                        if (active.AssetId == liability.AssetId)
                        {
                            main.Add(new MainTable
                            {
                                Active = active.Balance,
                                Liability = liability.Deposits,
                                AssetId = active.AssetId
                            });
                        }
                    }
                }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...