将Linq用于具有早期绑定实体的CRM时出错

时间:2013-04-01 17:37:13

标签: c# dynamics-crm-2011 dynamics-crm crm

我正在CRM 2011中编写一个插件。我正在尝试使用Linq来CRM来检索实体记录,这里是代码片段:

Entity legalcase = new Entity("lgl_legalcase");
legalcase = legalDataContext.Lgl_legalcaseSet.FirstOrDefault(l => l.Lgl_legalcaseId == legalCaseGUID);

它在此行引发错误,说它无法从类型Microsoft.Xrm.Sdk.Entity转换为类型Legal.Entities.Lgl_legalcase。我已经验证了这个插件在使用Retrieve方法而不是LINQ语法时工作正常,但我想让它使用LINQ。有谁知道为什么会出错?

2 个答案:

答案 0 :(得分:1)

你需要施放:

Entity legalcase = new Entity("lgl_legalcase")
legalcase = (Entity)legalDataContext.Lgl_legalcaseSet.FirstOrDefault(l => l.Lgl_legalcaseId == legalCaseGUID);

或将legalcase定义为Lgl_legalcase类型

Lgl_legalcase legalcase = new Lgl_legalcase();
legalcase = legalDataContext.Lgl_legalcaseSet.FirstOrDefault(l => l.Lgl_legalcaseId == legalCaseGUID);

答案 1 :(得分:1)

我只是重构了我的代码,以便Proxies现在位于我的插件引用的库中;在重构之后,我收到此错误消息。

在互联网上搜索20秒后,我发现了以下建议修复: 将[assembly: Microsoft.Xrm.Sdk.Client.ProxyTypeAssemblyAttribute()]添加到插件程序集

我的虚拟机正在执行,不允许我复制和粘贴,否则,我会分享来自Microsoft社交网站的链接,并将我复制的人信用。