我正在尝试在我正在编写的SignalR应用程序中使用ServiceStack,它是大型MVC 4.5应用程序的一部分.
我目前在App_Start文件夹中有一个正在启动我的Hub的类.我的问题是如何获得对ServiceStack的wiki所示的容器的引用.
container.Register<IRedisClientsManager>(c => new PooledRedisClientManager("localhost:6379"));
container.Register<ICacheClient>(c => (ICacheClient)c.Resolve<IRedisClientsManager>().GetCacheClient());
Run Code Online (Sandbox Code Playgroud)
我正在做的是使用Redis作为开发缓存层,并计划使用我们的exisitng membase作为生产缓存层.
我如何获得容器?
我对LINQ很新.
假设我有下表:
Incident
ID DeviceID Time Info
1 1 5/2/2009 d
2 2 5/3/2009 c
3 2 5/4/2009 b
4 1 5/5/2009 a
Run Code Online (Sandbox Code Playgroud)
在LINQ中,我如何编写查找最新且不同(在设备ID上)事件集的查询?我想要的结果是:
ID DeviceID Time Info
3 2 5/4/2009 b
4 1 5/5/2009 a
Run Code Online (Sandbox Code Playgroud)
您是否必须创建IEqualityComparer来执行此操作?
我遇到了GROUP BY和急切加载的问题.我试着解释一下我在做什么.我正在查询datacontext ctx以查找事件
事件类具有以下属性
string Description
DateTime Date
bool IsDeleted
Guid SubjectId
string Title
DateTime Created
Guid ForProjectId
Person TriggeredBy
List<Guid> Targets
Run Code Online (Sandbox Code Playgroud)
有多个具有相同SubjectId的多重事件,我想最终得到具有唯一SubjectIds的事件,这是该组中的最新事件.我最终得到以下查询.
var events = from x in
(from e in ctx.Events
.Include("TriggeredBy")
.Include("Targets")
group e by e.SubjectId
into g
select new
{
GroupId = g.Key,
EventsWithSameSubjectId = g,
}
)
select x.EventsWithSameSubjectId
.OrderByDescending(y => y.Created).FirstOrDefault();
Run Code Online (Sandbox Code Playgroud)
查询编译正常并返回正确的结果集.但包含的属性始终为null.
当我剥离查询以查看eagor加载是否正常工作....
var events = (from e in ctx.Events.OfType<DataNotificationEvent>()
.Include("TriggeredBy")
.Include("Targets")
select e).ToList();
Run Code Online (Sandbox Code Playgroud)
这将返回包含所有包含属性的事件.
这是Linq/EF的已知问题/错误还是有任何办法可以摆脱这个错误.
问候
文森特奥特斯
如果要将存储库B中的更改合并到存储库A中,是否应合并.hgtags中的更改?
库B可以有标签1.01,1.02,1.03这不是A.你怎么可能会合并这些到存储库中的文件.hgtags?如果我们合并然后尝试通过查看标记1.01来查看存储库A,我认为这不起作用.
我有一个WPF应用程序,我得到了
string someone = TextBox.text;
Run Code Online (Sandbox Code Playgroud)
我想在以下查询中使用它
query = " Select * From Table Where Title = someone "
Run Code Online (Sandbox Code Playgroud)
我该如何在查询中使用变量?
工作中的某个人开玩笑地发了一封带有html文件的电子邮件,意图使你的浏览器崩溃,如下所示
<html>
<script type="text/javascript">
function crash(){
for(i=0;i<5000000001;i++){
document.write(i);
}
}
</script>
<body onload="crash();">
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
无论如何,它并没有在Chrome中做得很好,并且谈话产生了一个友好的竞争,看看谁可以编写javascript以尽可能快地使页数达到5,000,000,000而不会导致浏览器无响应或崩溃.
我想出了以下用于Chrome的javascript.
<html>
<script type="text/javascript">
function countToFiveBillion(counter, num){
if(num < 5000000000)
{
num++;
if(num % 18700 == 0){
counter.innerHTML = num;
setTimeout(function() {countToFiveBillion(counter, num)}, 1);
} else {
countToFiveBillion(counter, num);
}
}
}
function initiateCountDown()
{
var counter = document.getElementById("counter");
var num = +counter.innerHTML;
countToFiveBillion(counter, num);
}
</script>
<body onload="initiateCountDown();">
<div id="counter">0</div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
这只会在chrome中运行的原因是我正在使用setTimeout调用来避免在chrome中创建stackoverflow.(Chrome还允许您在所有浏览器中进行递归调用的最大堆栈).
我有什么方法可以更快地计算这个数字吗?我认为我可以在导致溢出之前稍微增加一点数量(虽然小于100)但唯一的规定是必须显示尽可能多的数字.
改进代码:
<html>
<script type="text/javascript">
var counter;
var …Run Code Online (Sandbox Code Playgroud) 在VB6中有一个名为Control Arrays的功能,您可以在其中为控件命名相同的名称并为其提供索引值.这允许您通过循环控件和设置每个值来设置值.在VB .NET中我无法创建控件数组,有人可以为我提供类似的解决方案.
所以我正在做的是使用xml文档来确定数据库更新需要运行某些SQL脚本的顺序.
XML遵循这种格式
<ScriptRules>
<Database databaseName = “string”>
<Folder folderPath = “string” executeAllFiles = boolean>
<file order=”first or last”>“Filename”</file>
</Folder>
</Database>
</ScriptRules>
Run Code Online (Sandbox Code Playgroud)
因此,执行sql数据库中所有文件的类会在更改连接时查看此内容,并根据配置文件告诉它执行的操作从文件夹执行文件.
现在我的问题是:
假设我有一个包含4个Database节点的Document,每个节点都有n一些Folder节点,里面有各种各样的file节点.
我是否合乎逻辑地假设如果在我已经检索到使用For Each的Database节点上的循环中,它们将按照它们出现在xml文件中的顺序被拉出?(对于文件节点也一样)XElementdatabase.Elements("Database")
据我所知,情况确实如此,但我只是想在开始在生产数据库上使用它之前进行验证.
我试图确定为什么我可以在大量机器上成功安装的.Net服务无法在某些机器上启动.
当在这些机器上启动服务时,服务立即停止,因此我的假设是用户没有足够的权限来安装服务或者服务存在问题; 但是,这两个条件都是错误的(服务有效并且它们具有足够的权限).
我应该采取哪些步骤来确定服务无法启动的原因?
编辑
由于提供了一些答案,我弄清楚出了什么问题,请参阅我的答案,了解我的解决方案.
我有一个后台线程用于与GUI分开处理,一切都在线程之间正常工作.但是,当我关闭应用程序时,程序"关闭"但不会终止该过程.后台线程似乎保持程序活着.
我设置了"myThreadInstance.IsBackground = true;",我认为这需要C#在它被杀死时杀死它.
我在Visual Studio(2010,使用.NET 4.0)中测试了这一切,并且在第一次构建之后,其余都失败了,因为exe仍在使用中,因此它无法覆盖它.看着任务经理,就在那里.杀死Visual Studio会释放释放我的exe的vbhost进程.杀死我的exe进程,让vbhost在一两秒内重新生成它.
linq ×3
.net ×2
c# ×2
.hgtags ×1
distinct ×1
javascript ×1
mercurial ×1
merge ×1
recursion ×1
servicestack ×1
sql-order-by ×1
vb.net ×1
vb6 ×1
xml ×1