我有一个查询CRM 2011的方法,然后将结果绑定到DropDownList,这是我的代码:
public void CheckRsmPopulateAccounts()
{
string rsmFirstName = _currentUser.FirstName;
string rsmLastName = _currentUser.LastName;
ddlCustomer.DataSource = (from r in gServiceContext.CreateQuery("opportunity")
join c in gServiceContext.CreateQuery("account") on ((EntityReference)r["accountid"]).Id equals c["accountid"]
join u in gServiceContext.CreateQuery("systemuser") on ((EntityReference)r["ownerid"]).Id equals u["systemuserid"]
where u["firstname"].Equals(rsmFirstName) && u["lastname"].Equals(rsmLastName)
select new
{
AccountId = !r.Contains("accountid") ? string.Empty : r["accountid"],
Account = !c.Contains("name") ? string.Empty : r["name"]
});
ddlCustomer.DataValueField = "AccountId";
ddlCustomer.DataTextField = "Account";
ddlCustomer.DataBind();
}
但由于某种原因,它一直给我一个Exception has been thrown by the target of an invocation.
错误,它看起来像DataBind
命令。我似乎无法弄清楚这个问题,错误看起来如此通用。知道是什么导致了这个吗?
谢谢!
答案 0 :(得分:0)
select new {}
创建一个匿名类型。您无法通过匿名类型对象进行枚举。
在你的linq
的末尾添加.ToList()
另请检查您的Linq实际上是否返回了某些内容,并确保您没有任何回列的列null