实体框架Z Plus批量更新

时间:2018-09-18 03:16:51

标签: entity-framework entity-framework-6 entity-framework-plus

我正在使用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
}

2 个答案:

答案 0 :(得分:0)

编写如下代码:

;

答案 1 :(得分:0)

免责声明:我是项目Entity Framework Plus

的所有者

不幸的是,不能将BatchUpdate的值从一行更改为另一行。

免责声明:我是项目Entity Framework Extensions

的所有者

在这种情况下,我们通常建议使用为此情况而构建的付费库,并提供高性能的节省操作。

示例

// Easiest way
context.BulkSaveChanges();

// Fastest way
context.BulkUpdate(tags);
相关问题