I am running a linq query against CRM 2011 and I keep getting this error:
Invalid ‘where’ condition. An entity member is invoking an invalid property or method.
My code looks like this:
try
{
string rsmName = "Bob Harrison";
var linqQuery = (from r in gServiceContext.CreateQuery("opportunity")
join c in gServiceContext.CreateQuery("account") on ((EntityReference) r["accountid"]).Id equals c["accountid"] into opp
from o in opp.DefaultIfEmpty()
where ((EntityReference)r["ownerid"]).Name.Equals(rsmName)
select new
{
AccountId = !r.Contains("accountid") ? string.Empty : r["accountid"],
Account = !o.Contains("name") ? string.Empty : o["name"]
});
ddlCustomer.DataSource = linqQuery;
ddlCustomer.DataValueField = "AccountId";
ddlCustomer.DataTextField = "Account";
ddlCustomer.DataBind();
}
catch (Exception ex)
{
}
Any idea how to fix this?
Thanks!
It looks CRM Linq provider has a limited capabilities and the query is too complex. Try to use FetchXml.