从新的CosmosDb模拟器我得到了一个存储库来执行基本的documentdb操作,这个存储库被注入其他类.我想对基本查询进行单元测试.
public class DocumentDBRepository<T> where T : class
{
//Details ommited...
public IQueryable<T> GetQueryable()
{
return _client.CreateDocumentQuery<T>(
UriFactory.CreateDocumentCollectionUri(_databaseId, _collectionId),
new FeedOptions { MaxItemCount = -1, EnableCrossPartitionQuery = true });
}
public async Task<IEnumerable<T>> ExecuteQueryAsync(IQueryable<T> query)
{
IDocumentQuery<T> documentQuery = query.AsDocumentQuery();
List<T> results = new List<T>();
while (documentQuery.HasMoreResults)
{
results.AddRange(await documentQuery.ExecuteNextAsync<T>());
}
return results;
}
}
Run Code Online (Sandbox Code Playgroud)
此存储库需要一个文档客户端才能工作,它也会在构造函数上注入.
public DocumentDBRepository(string databaseId, IDocumentClient client)
{
_client = client;
_databaseId = databaseId;
_collectionId = GetCollectionName();
}
Run Code Online (Sandbox Code Playgroud)
我最初的方法是使用CosmosDb模拟器,但这需要模拟器运行我不喜欢并使测试更慢.
我的第二种方法是尝试使用文档客户端的模拟.
var data = new List<MyDocumentClass>
{ …Run Code Online (Sandbox Code Playgroud) 我最近发现,试图查看Visual Studio中任何方法或属性的文档都停止工作,它总是伴随着消息: 文档缓存仍在构建中.请在几秒钟后再试一次. 以前,它只是一秒钟,然后它工作,现在它不再显示文档.
这个文档缓存如何工作,但更重要的是,是什么导致它停止工作?
欢迎任何建议.谢谢
我正在使用Ninject(MVC5 + WEBAPI)构建应用程序.并且有一些问题可以找出许多答案中的哪些答案解释了集成Ninject和WebApi的最新解决方案.所以我安装了以下软件包:
有人建议我的初始问题(Ninject不解析API控制器实例化)应该通过以下任一方法解决:
所以它归结为,所有这些包都是什么?另外,我需要使用Owin托管吗?我从nuget控制台得到一个'无法找到包Ninject.Web.WebApi'消息,所以我假设这个消息不存在了吗?
谢谢.
所以我正在从 Github 找出最简单的分支/部署策略,它至少有一个 dev 和一个 release(master) 分支。看到这个答案后,我认为这非常接近我们所需要的。除了只能部署某些功能的一个大问题。不是一切。
此处提供的 2 个选项还不够好。这是一个常见的场景,每次恢复都是很讨厌的。另外,我读过樱桃采摘还有其他问题,特别是因为樱桃采摘的提交实际上是副本(这是真的吗?)
现在,我在想,如果对于我们开始处理的新功能,我们创建一个分支,并将它们合并到我们选择的 dev 分支,我们可以将这些分支合并到 release 分支(而不是从 dev 合并到 release 分支,我们从功能分支合并到开发和发布,这样我们就可以选择要发布的内容),这样我们就可以只准备发布所需的更改。我至少可以想到两个可能的问题:
所以,总而言之,我如何保留一个开发分支,在那里进行一些更改,然后只将一些内容移动到另一个分支?。
非常感谢。
我正在从Visual Studio 2013迁移到Visual Studio 2015.我安装了TDS,可以很好地构建和创建TDS包.最初我有一个错误,抱怨Hedgehog服务dll不存在,通过重新安装TDS消失了.
现在,我唯一的问题是当我尝试部署到我的本地时.构建测试通过正常,但部署选项在TDS项目中失败,并出现以下错误:
C:\ Program Files(x86)\ MSBuild\HedgehogDevelopment\SitecoreProject\v9.0\HedgehogDevelopment.SitecoreProject.targets(633,5):错误:部署失败.原因:TDS连接器的版本不正确.
之前有没有人看过这个错误,我该如何解决?我仍然可以在本地部署到我的文件夹,因为所有代码都在更改,我也可以创建包,但是让它全部工作真的很棒.
谢谢
因此,ContentSearchManager.GetIndex(SitecoreIndexableItem)返回null.我很确定我们可能会错过索引.使用sitecore主数据库时,一切正常,但在web中为空.
我想问题是,有没有办法知道哪个索引是GetIndex尝试恢复,返回null.
我为我的实验用BlockingCollection实现了Producer/Consumer模式.
PerformanceCounter c = null;
void Main()
{
var p =System.Diagnostics.Process.GetCurrentProcess();
c = new PerformanceCounter("Process", "Working Set - Private", p.ProcessName);
(c.RawValue/1024).Dump("start");
var blocking = new BlockingCollection<Hede>();
var t = Task.Factory.StartNew(()=>{
for (int i = 0; i < 10000; i++)
{
blocking.Add(new Hede{
Field = string.Join("",Enumerable.Range(0,100).Select (e => Path.GetRandomFileName()))
});
}
blocking.CompleteAdding();
});
var t2 = Task.Factory.StartNew(()=>{
int x=0;
foreach (var element in blocking.GetConsumingEnumerable())
{
if(x % 1000==0)
{
(c.RawValue/1024).Dump("now");
}
x+=1;
}
});
t.Wait();
t2.Wait();
(c.RawValue/1024).Dump("end");
}
Run Code Online (Sandbox Code Playgroud)
运行后我的内存转储:
start
211908 …Run Code Online (Sandbox Code Playgroud) 我有一个如下所示的文件夹结构:
-Daily Logs
-Script1Logs
-AnotherScriptLogs
-ThirdScriptLogs
Run Code Online (Sandbox Code Playgroud)
我想压缩"每日日志"下面的所有文件夹,并保留相同的文件夹结构.
有没有办法一次性压缩文件夹而不单独检查每个文件夹?此外,zip文件是否只包含上面显示的文件结构而不是日志文件夹的整个路径?
这是我用来压缩Daily Logs文件夹的内容,但它不压缩子文件夹,它包含每日日志文件夹的完整路径,作为zip文件中文件夹结构的一部分.
If (!(Test-Path $ARCHIVELOGFOLDER\$ARCHIVELOGFILE)) {
Write-Zip $file.FullName $ARCHIVELOGFOLDER\$ARCHIVELOGFILE
Write-Zip -Path $files -OutputPath $ArchiveFile -Append -FlattenPaths -IncludeEmptyDirectories -Quiet -Level 9
}
Run Code Online (Sandbox Code Playgroud) c# ×3
sitecore ×2
branch ×1
git ×1
github ×1
indexing ×1
moq ×1
ninject ×1
powershell ×1
pscx ×1
sitecore7 ×1
sitecore7.2 ×1
tds ×1
unit-testing ×1
zip ×1