我将框架版本设置为:project.json中的dnx46.还有以下包:
"dependencies": {
"EntityFramework.Commands": "7.0.0-rc1-final",
"EntityFramework.Core": "7.0.0-rc1-final",
"EntityFramework.MicrosoftSqlServer": "7.0.0-rc1-final",
"Microsoft.AspNet.Identity.EntityFramework": "3.0.0-rc1-final"
}
Run Code Online (Sandbox Code Playgroud)
但是,当我开始运行enable-migrations命令时,我得到以下内容:
术语"启用 - 迁移"不会被识别为cmdlet的名称
有谁知道我如何在最新的.NET中运行EF迁移?
为什么当我运行以下示例时,我是否只让Parallel.ForEach运行的线程数等于我机器上的核心数?我以为Parallel.ForEach给你的线程池线程大约有1000个?
int threads1;
int threads2;
ThreadPool.GetAvailableThreads(out threads1,out threads2);
var list = Enumerable.Range(1, 200);
var po = new ParallelOptions
{
MaxDegreeOfParallelism = 100
};
Parallel.ForEach(list, po, x =>
{
Console.WriteLine("Thread:" + Thread.CurrentThread.ManagedThreadId);
Thread.Sleep(1000);
});
Run Code Online (Sandbox Code Playgroud)
我在这里错过了什么吗?
我最近发现了以下代码,可以有效地运行大量的IO绑定任务(参见链接). http://blogs.msdn.com/b/pfxteam/archive/2012/03/05/10278165.aspx
我的印象如下:
我的问题是,由于Parallel.ForEach本身有自己的MaxDegreeOfParallelism,我如何知道在IEnumerable扩展的示例代码中定义dop参数的内容?
例如,如果我要处理1000个项目并且需要为每个项目执行基于IO的SQL-Server数据库调用,我会指定1000作为dop吗?使用Parallel.ForEach,它被用作限制器,以防止过多的线程旋转,这可能会损害性能.但这里它似乎用于分区最小数量的异步任务.我认为至少应该有这样的最大值(最小值是要处理的总项数),因为我想尽可能多地对数据库进行基于IO的调用.
我如何知道如何查看DOP参数?
public static Task ForEachAsync<T>(this IEnumerable<T> source, int dop, Func<T, Task> body)
{
return Task.WhenAll(
from partition in Partitioner.Create(source).GetPartitions(dop)
select Task.Run(async delegate {
using (partition)
while (partition.MoveNext())
await body(partition.Current);
}));
}
Run Code Online (Sandbox Code Playgroud) 我想在循环中运行批准测试,以便我可以测试100-1000s的XML文件.我让序列化器输出到一个字符串,然后在Verify()调用中使用它.
但是,我希望能够将verify方法设置为每个测试使用不同的文件名.类和方法名称很好,但是我想用附加名称标记它来描述数据库中正在测试的记录的ID.
这有可能,如果是这样的话怎么样?例如
MyTests.Test_X.ID101.approved.txt
MyTests.Test_X.ID101.received.txt
如果我有一个仅使用托管资源的类,那么我认为没有必要完全实现 IDisposable 模式。
当然这已经足够了:
public class ManagedResourceClient : IDisposable
{
private ITheManagedResource _myManagedResource = new TheManagedResource()
public void Dispose()
{
if ( _myManagedResource != null )
{
_myManagedResource.Dispose();
_myManagedResource = null;
}
}
}
Run Code Online (Sandbox Code Playgroud)
我没有看到任何使用的理由:
能否确认以上内容正确?