我正在使用Entity Framework Z Plus批处理更新方法。由于以下问题,我无法继续。实际上,当我给出诸如tagName="amir1"
之类的静态值时,Update方法效果很好。但是我需要从Web服务或基于Tagdescription
的另一个集合中获取tagId
,Update方法不接受扩展方法或任何其他方法来满足我的要求。
“ LINQ to Entities无法识别方法'System.String GetTagDescription(Int32)',并且该方法无法转换为商店表达式。”
希望我的要求现在很明确。如果有其他解决方法,请指导我。
这是我的代码:
using (var context = new TrialsDBEntities())
{
context.tblTags.Where(x => (tagIdCollection.Contains(x.tagId))).
Update(m => new tblTag { tagDescription = m.tagId.GetTagDescription(), tagName = "amir1" });
}
public static string GetTagDescription(this int i)
{
return "test" + i;
///Replace above line with call to database or web service call
getting some text by giving i as input
}
答案 0 :(得分:0)
编写如下代码:
;
答案 1 :(得分:0)
免责声明:我是项目Entity Framework Plus
的所有者不幸的是,不能将BatchUpdate的值从一行更改为另一行。
免责声明:我是项目Entity Framework Extensions
的所有者在这种情况下,我们通常建议使用为此情况而构建的付费库,并提供高性能的节省操作。
示例
// Easiest way
context.BulkSaveChanges();
// Fastest way
context.BulkUpdate(tags);