Выберите новый, чтобы создать сложный объект с вложенным исключением приведения новых бросков. - PullRequest
0 голосов
/ 27 августа 2010

Кто-нибудь имел эту проблему? Я пытаюсь получить объекты из базы данных и создать сложное poco, но у меня возникает проблема приведения.
Свойство Account в типе сообщения poco является типом учетной записи poco, и оно сообщит мне, что независимо от того, какой тип поля указан первым, нельзя привести к PocoAccount, поэтому в приведенном ниже примере AccountID представляет собой int, поэтому я получу int cant 'быть брошенным в PocoAccount.

var result = (from a in DbAccount.All()
              join m in DbMessage.All() on m.AccountID equals a.AccountID
              select new PocoMessage {
                Account = new PocoAccount {
                  AccountID = a.AccountID,
                  FirstName = a.FirstName,
                  LastName = a.LastName
                },
                MessageID = m.MessageID,
                Subject = m.Subject,
                Body = m.Body
              });

1 Ответ

0 голосов
/ 27 августа 2010

Если найден аналогичный пост, в котором предлагается использовать ToList (), который, похоже, решает проблему, однако это не совсем правильно, и я не проверил последствия sql.

var result = (from a in DbAccount.All().ToList()
          join m in DbMessage.All().ToList() on m.AccountID equals a.AccountID
          select new PocoMessage {
            Account = new PocoAccount {
              AccountID = a.AccountID,
              FirstName = a.FirstName,
              LastName = a.LastName
            },
            MessageID = m.MessageID,
            Subject = m.Subject,
            Body = m.Body
          });
...