Как отобразить данные двух таблиц в представлении, используя лямбда-выражение LINQ в ASP.Net MVC? - PullRequest
1 голос
/ 13 июня 2019

Я с трудом пытаюсь отобразить данные из двух таблиц в представление, используя лямбда-выражение linq в ASP.net MVC.

Я пробовал этот код:

var idSearchJoin = payoutdb.payout_transaction    // your starting point - table in the "from" statement
                .Join(payoutdb.payout_remittance, // the source table of the inner join
                transaction => transaction.transid, // Select the primary key (the first part of the "on" clause in an sql "join" statement)
                remit => remit.transid,   // Select the foreign key (the second part of the "on" clause)
                (transaction, remit) => new { Transaction = transaction, Remit = remit }) // selection
                .Where(transactremit => transactremit.Transaction.senderRefId == searchTxt).ToList();

Я присоединился к двум таблицам, но теперь моя проблема в том, что я не могу поместить его в модель представления, чтобы иметь возможность отображать его в представлении, потому что две таблицы имеют один и тот же столбец transid, так что даже еслия создал новую модель, чтобы соответствовать значениям результата выражения linq, которому он не будет соответствовать, потому что transid не может быть инициирован дважды внутри одной и той же модели представления.Есть ли у вас какие-либо предложения о том, как я должен это сделать?

1 Ответ

1 голос
/ 13 июня 2019

Я не уверен, что вы подразумеваете под transid, не может быть инициировано дважды. Если вы хотите поместить свои результаты в ViewModel, вам нужно поставить их прямо на ваш выбор или после вашего запроса:

Вместо этого:

(transaction, remit) => new { Transaction = transaction, Remit = remit }) // selection

Сделайте это (MyViewModel - это название моей модели просмотра):

(transaction, remit) => new MyViewModel()
{ field1 = transaction.transid, field2 = remit.whateverfield, field3 = transaction.whateverfield }) 
//selection, replace field1 with your correct fields

Затем выполните фильтрацию (убрал слово Transaction):

.Where(transactremit => transactremit.senderRefId == searchTxt).ToList();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...