小编AsV*_*leO的帖子

动态更改TPL数据流阻止.MaxDegreeOfParallelerism

当我创建一个数据流块时,我指定它的.MaxDegreeOfParallelerism如下:

...New ExecutionDataflowBlockOptions With 
   {.MaxDegreeOfParallelism = System.Environment.ProcessorCount - 1}...
Run Code Online (Sandbox Code Playgroud)

以后有什么方法可以改变吗?

.net c# task-parallel-library tpl-dataflow

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

获取导航属性的Count()而不在Entity Framework中加载整个集合

在XAML中,DataGrid绑定到一个名为EF实体的列表Results.一列被绑定到CountBuildings导航属性.延迟加载已关闭.所以我需要包含Buildings在查询中,以获得它的数量.这会导致性能问题,因为整个Buildings实体集合会在内存中加载.但我只需要Count它.有没有办法获得Count导航属性而不将其加载到内存中?

  var resQuery =
                db.BAStreets
                    .Include("Street.StreetType")
                    .Include("Area.District")
                    .Include("Buildings")
                    .Where(x => true);
  Results = resQuery.ToList();
Run Code Online (Sandbox Code Playgroud)

在XAML中绑定:

<DataGridTextColumn Binding="{Binding Buildings.Count}"/>
Run Code Online (Sandbox Code Playgroud)

还有一点其他问题.我用它:.Where(x => true)将DbSet强制转换为IQueryable.看起来这是一种气味的东西.什么是标准模式?

c# xaml entity-framework eager-loading navigation-properties

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

AutoFixture + AutoMoq:使用排除属性创建模拟

例如ISomething,一个具有三个属性的接口:string Nameint Count一些复杂的属性ImComplex(具有循环依赖性等),我不想自动构建.所以我需要AutoFixture来创建一个Mock of ISomethingwith NameCount通过其默认算法设置并ImComplex为null.但如果我试图像这样解决它我会得到一个例外:

fixture.Customize(new AutoConfiguredMoqCustomization());
var some = fixture.Build<ISomething>().Without(x=>x.ImComplex).Create<ISomething>();
Run Code Online (Sandbox Code Playgroud)

Ploeh.AutoFixture.ObjectCreationException:装饰的ISpecimenBuilder无法根据请求创建样本:RP.Core.IInformationUnit.如果请求表示接口或抽象类,则会发生这种情况; 如果是这种情况,请注册一个可以根据请求创建标本的ISpecimenBuilder.如果在强类型的Build表达式中发生这种情况,请尝试使用其中一个IFactoryComposer方法提供工厂.

我该怎么办?

c# interface moq autofixture automoq

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

更新到 .NET Core SDK 2.1.4 后缺少 dotnet

.NET Core SDK 在 Windows Server 2016dotnet命令上更新到 2.1.4 后消失了。指令:

dotnet --info
'dotnet' is not recognized as an internal or external command,
operable program or batch file.
Run Code Online (Sandbox Code Playgroud)

如何解决这个问题?

.net cmd .net-core

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

TPL Dataflow 块中抛出的异常方法名称始终为 MoveNext()

我试图在下面的示例中获取异常堆栈跟踪的最内部方法名称。由于未知的原因,我总是得到MoveNext方法名称,而不是真实姓名。我该如何解决?

var st = new StackTrace(ex, true);
var frame = st.GetFrames()?.First(y => y.GetFileName() != null);
var method = frame.GetMethod().ToString(); // result: Void MoveNext()
var method2 = frame.Name; // result: MoveNext
Run Code Online (Sandbox Code Playgroud)

更新:

TPL Dataflow当块的委托中抛出异常时就会发生这种情况:

private async Task Parse(ListItem item)
{
    await Task.Delay(1);
    throw new Exception("Error");
}
Run Code Online (Sandbox Code Playgroud)

//...

var parseBlock = new ActionBlock<ListItem>(
                    async x => { await Parse(x).ConfigureAwait(false); });
Run Code Online (Sandbox Code Playgroud)

MoveNext我从任何区块与任何代表一起得到。堆栈跟踪:

at RP.Core.ListsPipeline.<Parse>d__21.MoveNext() in Class.cs:line 179
--- End of stack trace from previous location where exception was thrown …
Run Code Online (Sandbox Code Playgroud)

c# methods exception task-parallel-library async-await

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

Service Fabric - 具有相同端点的多个服务

有没有办法让同一个集群中的多个不同的SF服务监听同一个端点http 80?服务的 WebAPI 具有不同的路由。

<Endpoint Protocol="http" Name="ServiceEndpoint" Type="Input" Port="80" />
Run Code Online (Sandbox Code Playgroud)

我收到一个错误:

无法绑定到地址http://[::]:80 : 地址已被使用。

有没有办法避免这种情况?

http endpoint azure-service-fabric asp.net-core asp.net-core-webapi

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

使用 Roslyn 将 C# 字符串值转换为转义字符串文字

@Hallgrim在这里找到了CodeDom 的这种方法:

private static string ToLiteral(string input)
{
    using (var writer = new StringWriter())
    {
        using (var provider = CodeDomProvider.CreateProvider("CSharp"))
        {
            provider.GenerateCodeFromExpression(new CodePrimitiveExpression(input), writer, null);
            return writer.ToString();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

现在我们需要对 .NET Core 进行 Roslyn 重制。或者我们应该手动替换符号?

c# string literals converters roslyn

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

来自不同列的SQL计数值

我有一张Dog桌子.每只狗Breed都有0到2张照片.我需要收到每个品种的所有狗的照片数:表BreedId和匹配PhotosCount.所以结果表应该是:

BreedID|PhotosCount
-------------------
1      |3
-------------------
2      |1
-------------------
Run Code Online (Sandbox Code Playgroud)

小狗

sql t-sql sql-server

0
推荐指数
1
解决办法
60
查看次数