选择new以使用嵌套的新抛出强制转换异常创建复杂对象

时间:2010-08-27 07:07:26

标签: subsonic3 subsonic-active-record

有人有这个问题吗?我试图从数据库中获取对象并创建一个复杂的poco但我得到了一个演员问题 poco消息类型上的Account属性是一个poco帐户类型,它会告诉我无论第一个字段类型是什么都不能转换为PocoAccount,所以在下面的示例中,AccountID是一个i​​nt所以我会得到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 :(得分:0)

如果发现一个类似的帖子建议使用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
          });