小编Mik*_*ate的帖子

实体框架大数据集,内存不足异常

我正在处理一个非常大的数据集,大约有200万条记录.我有下面的代码,但是在它处理了三个批次,大约600,000条记录后得到了一个内存不足的例外.我理解,因为它循环遍历每个批处理实体框架的延迟加载,然后尝试将完整的200万条记录构建到内存中.有没有办法卸载我处理过的批次?

ModelContext dbContext = new ModelContext();
IEnumerable<IEnumerable<Town>> towns = dbContext.Towns.OrderBy(t => t.TownID).Batch(200000);
foreach (var batch in towns)
{
    SearchClient.Instance.IndexMany(batch, SearchClient.Instance.Settings.DefaultIndex, "Town", new SimpleBulkParameters() { Refresh = false });
}
Run Code Online (Sandbox Code Playgroud)

注意:批处理方法来自此项目:https://code.google.com/p/morelinq/

搜索客户端是这样的:https://github.com/Mpdreamz/NEST

c# entity-framework

27
推荐指数
1
解决办法
3万
查看次数

使用自定义解析程序跳过空值

我想使用automapper在我的公共数据协定和我的数据库模型之间进行映射.我创建了一个自动完成所有契约的类创建映射.我唯一的问题是,如果值不为null,我只想将合约中的值映射到数据库模型.我在这里看了其他问题但是看不到使用自定义解析器的示例.

这是我的一些代码

var mapToTarget = AutoMapper.Mapper.CreateMap(contract, mappedTo);
foreach (var property in contract.GetProperties().Where(property => property.CustomAttributes.Any(a => a.AttributeType == typeof(MapsToProperty))))
{
  var attribute = property.GetCustomAttributes(typeof(MapsToProperty), true).FirstOrDefault() as MapsToProperty;

  if (attribute == null) continue;

  mapToTarget.ForMember(attribute.MappedToName,
                    opt => 
                        opt.ResolveUsing<ContractToSourceResolver>()
                            .ConstructedBy(() => new ContractToSourceResolver(new MapsToProperty(property.Name, attribute.SourceToContractMethod, attribute.ContractToSourceMethod))));
}


private class ContractToSourceResolver : ValueResolver<IDataContract, object>
{
  private MapsToProperty Property { get; set; }

  public ContractToSourceResolver(MapsToProperty property)
  {
     Property = property;
  }

  protected override object ResolveCore(IDataContract contract)
  {
     object result = null;
     if (Property.ContractToSourceMethod != null)
     { …
Run Code Online (Sandbox Code Playgroud)

c# automapper

15
推荐指数
3
解决办法
2万
查看次数

OpenCV色彩浓度直方图

我正在使用OpenCV开发一个ANPR系统,并在一些文章中看到了一种进行字符分割的方法.我们的想法是制作一个图表,显示图像上的颜色浓度.

我该怎么做呢?

在此输入图像描述

这是我的形象:

在此输入图像描述

我需要检测如上所示的黑色区域的位置以识别每个字符.

我已经尝试逐个像素地添加值,但我在Android上这样做,这需要时间是不可接受的.

ocr opencv computer-vision anpr

9
推荐指数
1
解决办法
3503
查看次数

使用ARM模板将Azure Web App连接到vNet

我试图在Azure中编写一堆资源的脚本,作为其中的一部分,我需要一个Web应用程序,以便能够通过vNet与VM上运行的服务进行通信.

我创建了一个模板,它似乎做了创建连接所需的一切,但由于某种原因没有建立连接.查看门户网站显示该站点已连接到vNet并且证书已同步,但vNet网关上的点对站配置未显示活动连接.

但是,如果我从vNet断开Web应用程序的连接,然后使用Azure门户中的设置按钮重新连接到同一个vNet,一切都可以正常工作.

我的模板中肯定会有一些东西丢失,但过去几个小时看起来我无法解决问题

这是我的ARM模板

{
  "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
  },
  "variables": {

  },
  "resources": [
    {
      "type": "Microsoft.Network/networkSecurityGroups",
      "name": "[variables('nsgName')]",
      "apiVersion": "2016-03-30",
      "location": "[parameters('location')]",
      "properties": {
        "securityRules": []
      },
      "resources": [ ],
      "dependsOn": [ ]
    },
    {
      "type": "Microsoft.Network/networkSecurityGroups",
      "name": "[variables('infrastructureNsgName')]",
      "apiVersion": "2016-03-30",
      "location": "[parameters('location')]",
      "properties": {
        "securityRules": []
      },
      "resources": [ ],
      "dependsOn": [ ]
    },
    {
      "type": "Microsoft.Network/virtualNetworks",
      "name": "[variables('vnetName')]",
      "apiVersion": "2016-03-30",
      "location": "[parameters('location')]",
      "properties": {
        "addressSpace": {
          "addressPrefixes": [
            "10.1.0.0/16"
          ]
        },
        "subnets": [ …
Run Code Online (Sandbox Code Playgroud)

azure azure-resource-manager

9
推荐指数
1
解决办法
1467
查看次数

kube-apiserver未在多主集群中正确进行身份验证

我正在尝试使用kubeadm此处记录的Azure在Azure中创建HA Kubernetes集群https://kubernetes.io/docs/setup/independent/high-availability/

当只使用1个主节点时我可以正常工作但是当更改为3个主节点时,kube-dns会随着apiserver问题而崩溃

我可以看到运行时kubectl get nodes3个主节点已准备就绪

NAME           STATUS    ROLES     AGE       VERSION
k8s-master-0   Ready     master    3h        v1.9.3
k8s-master-1   Ready     master    3h        v1.9.3
k8s-master-2   Ready     master    3h        v1.9.3
Run Code Online (Sandbox Code Playgroud)

但是dns和仪表板吊舱一直在崩溃

NAME                                    READY     STATUS             RESTARTS   AGE
kube-apiserver-k8s-master-0             1/1       Running            0          3h
kube-apiserver-k8s-master-1             1/1       Running            0          2h
kube-apiserver-k8s-master-2             1/1       Running            0          3h
kube-controller-manager-k8s-master-0    1/1       Running            0          3h
kube-controller-manager-k8s-master-1    1/1       Running            0          3h
kube-controller-manager-k8s-master-2    1/1       Running            0          3h
kube-dns-6f4fd4bdf-rmqbf                1/3       CrashLoopBackOff   88         3h
kube-proxy-5phhf                        1/1       Running            0          3h
kube-proxy-h5rk8                        1/1       Running …
Run Code Online (Sandbox Code Playgroud)

coreos kubernetes kubeadm kubernetes-apiserver

8
推荐指数
1
解决办法
1869
查看次数

Web Api用户过滤响应字段

我正在创建一个新的Web API,并希望允许用户指定在URL中返回哪些字段.

我目前的想法是:

对于这样的示例模型:

public class Value
{
    public string ValueId { get; set; }

    public int Number { get; set; }

    public ValueInternal Internal { get; set; }
}
public class ValueInternal
{
    public int Number { get; set; }

    public string Something { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

和这样的URL

http://example.com/api/values/?_fields=Number,Internal(Something)
Run Code Online (Sandbox Code Playgroud)

会回来的

[
   {
       "Number": 0,
       "Internal": {
           "Number": 0
       }
   }
]
Run Code Online (Sandbox Code Playgroud)

我已经提出了以下实现这一目标的方法,但它有一些缺陷.即它是无法处理的,如果Internal是可枚举的ValueInternal或者不支持包括所有或包括所有除外,或者如果T和TResult是不同的类型.有没有人对我如何改进这一点有任何建议,或者是否已经存在一种我缺少的方法.

public static Expression<Func<T, TResult>> CreateSelector<T, TResult>() where TResult : new()
    {
        var …
Run Code Online (Sandbox Code Playgroud)

c# asp.net-web-api

7
推荐指数
1
解决办法
985
查看次数

OpenCV Max位置

我正在开发一个OpenCV项目并使用cvMatchTemplate来定位图像的一部分然后我使用cvMinMaxLoc来查找最大区域,因此最匹配,我的问题是cvMinMaxLoc只返回一个最大位置,因为可能有多个匹配一个图像.

有没有办法将所有最大位置返回到特定阈值以上

对于每个位置>阈值将位置添加到阵列

我是OpenCV的新手,不知道这样的事情是否已经存在,但到目前为止我还没有找到任何东西

任何帮助非常感谢

opencv

5
推荐指数
1
解决办法
6604
查看次数

Azure PowerShell DSC 安装额外模块

作为 Azure 资源组模板的一部分,我为我的 VM 设置了 PowerShell DSC 扩展,该扩展设置了各种 Windows 功能。

作为此自动化设置的一部分,我希望能够在防火墙中打开一些端口,经过一番研究后我发现有一个可用的 xFirewall DSC 模块。我的问题是如何在 DSC 执行之前自动将此模块安装到 Azure VM 上?

我的配置如下:

Configuration Main
{

Param ( [string] $nodeName )

Import-DscResource -ModuleName PSDesiredStateConfiguration
Import-DscResource -ModuleName xFirewall

Node $nodeName
Run Code Online (Sandbox Code Playgroud)

由于未安装模块,xFirewall 导入失败。

我曾考虑过创建另一个可以在此脚本之前运行的 DSC 脚本,但这证明很困难,因为一次只能将一个 DSC 扩展附加到虚拟机。

powershell azure azure-powershell dsc

5
推荐指数
1
解决办法
2102
查看次数

微软奥尔良粮食通信业绩

我正在使用Mircosoft Orleans作为基础的工作流引擎,因为它提供了许多有用的功能,例如自动分配工作和处理故障转移.

我有三种类型的谷物:

  • 工作流程 - 保存工作流程中的信息以及应执行的工作块顺序
  • 工作块 - 实际完成工作的部分
  • 执行 - 单个执行工作流程

我的问题是,当运行大量当前执行时,即> 1000时,性能确实受到影响.我做了一些分析,并将其缩小到谷物之间发生的沟通.反正我还能改进这个吗?

这是我的代码的轮廓以及晶粒如何相互作用

执行粒度位于循环中,从工作流中获取下一个工作块,然后在工作块上调用execute.谷物之间的这种不断调用导致我的一个测试工作流程的执行时间从运行单次执行时的10秒变为运行超过1000时的大约5分钟.这可以改进还是应该重新设计解决方案去除粮食沟通?

[StorageProvider(ProviderName = "WorkflowStore")]
[Reentrant]
[StatelessWorker]
public class Workflow : Grain<WorkflowState>, IWorkflow
{
    public Task<BlockRef> GetNext(Guid currentBlockId, string connectionName)
    {
         //Lookup the next work block
    }
}

[Reentrant]
[StatelessWorker]
public class WorkBlock : Grain<WorkBlock State>, IWorkBlock 
{
    public Task<string> Execute(IExecution execution)
    {
         //Do some work
    }
}


[StorageProvider(ProviderName = "ExecutionStore")]
public class Execution : Grain<ExecutionState>, IExecution, IRemindable
{
    private async Task ExecuteNext(bool skipBreakpointCheck = false) …
Run Code Online (Sandbox Code Playgroud)

c# performance orleans

2
推荐指数
1
解决办法
1221
查看次数