【问题标题】:Dataservicecontext in WCF Service- insertion is slow savechanges()WCF 服务中的 Dataservicecontext - 插入速度很慢 savechanges()
【发布时间】:2022-07-28 15:04:46
【问题描述】:

我有一个包含 1000 条记录的列表 List<people> a = new List<people> {get; set;} 而且我尝试一次插入每条记录。

foreach( var d in a)
{
servicereferences.MiddleTier data = new servicereferences.MiddleTier();
data.id=a.id;
data.name=a.name;
data.AddObject("datas",data);
}
SaveChanges(data);

因此,通过使用实体框架 -DataServiceContext Addobject(),我将所有数据添加到 addobject 方法中。

Savechanges 将记录插入到数据库中。

dataservicecontext 需要更多时间,可能需要大约 6 分钟才能将循环数据插入数据库。

请有任何建议!! (我必须分成一个批次作为 1 个请求一次保存 100 或 200 条记录)

来源:https://docs.microsoft.com/en-us/dotnet/api/system.data.services.client.dataservicecontext?view=netframework-4.8

【问题讨论】:

    标签: c# winforms entity-framework wcf-data-services dataservice


    【解决方案1】:

    Addobject() 可能是这样的:context.TableName.AddObject(TableEntityInstance);

    意思是:

    TableName: the name of the table in the database.
    TableEntityInstance: an instance of the table entity class.
    

    这是一个例子:

    public void UpdatePlayerScreen(byte[] imageBytes, string installationKey)
    {
      var player = (from p in this.ObjectContext.Players where p.InstallationKey == installationKey select p).FirstOrDefault();
    
      var current = (from d in this.ObjectContext.Screenshots where d.PlayerID == player.ID select d).FirstOrDefault();
    
      if (current != null)
      {
        current.Screen = imageBytes;
        current.Refreshed = DateTime.Now;
    
        this.ObjectContext.SaveChanges();
      }
      else
      {
        Screenshot screenshot = new Screenshot();
    
        screenshot.ID = Guid.NewGuid();
        screenshot.Interval = 1000;
        screenshot.IsTurnedOn = true;
        screenshot.PlayerID = player.ID;
        screenshot.Refreshed = DateTime.Now;
        screenshot.Screen = imageBytes;
    
        this.ObjectContext.Screenshots.AddObject(screenshot);
        this.ObjectContext.SaveChanges();
      }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-04-26
      • 1970-01-01
      • 1970-01-01
      • 2010-11-28
      • 2017-06-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多