小编msa*_*het的帖子

在ServiceStack中,获取容器的正确方法是什么

我正在尝试在我正在编写的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作为生产缓存层.

我如何获得容器?

inversion-of-control servicestack

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

LINQ - 用distinct和orderby编写查询

我对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来执行此操作?

linq distinct sql-order-by

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

Linq/EF,Eager loading和GROUP BY问题

我遇到了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的已知问题/错误还是有任何办法可以摆脱这个错误.

问候

文森特奥特斯

linq entity-framework

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

Mercurial - 应该合并.hgtags吗?

如果要将存储库B中的更改合并到存储库A中,是否应合并.hgtags中的更改?

库B可以有标签1.01,1.02,1.03这不是A.你怎么可能会合并这些到存储库中的文件.hgtags?如果我们合并然后尝试通过查看标记1.01来查看存储库A,我认为这不起作用.

merge mercurial .hgtags

11
推荐指数
2
解决办法
2807
查看次数

如何在sql语句中使用字符串变量

我有一个WPF应用程序,我得到了

string someone = TextBox.text;
Run Code Online (Sandbox Code Playgroud)

我想在以下查询中使用它

query = " Select * From Table Where Title = someone "
Run Code Online (Sandbox Code Playgroud)

我该如何在查询中使用变量?

c# sql-server-2008

10
推荐指数
2
解决办法
7万
查看次数

Javascript递归改进

工作中的某个人开玩笑地发了一封带有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)

javascript recursion

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

如何在VB .NET中创建控件数组

在VB6中有一个名为Control Arrays的功能,您可以在其中为控件命名相同的名称并为其提供索引值.这允许您通过循环控件和设置每个值来设置值.在VB .NET中我无法创建控件数组,有人可以为我提供类似的解决方案.

vb.net vb6

9
推荐指数
3
解决办法
6万
查看次数

是否通过LINQ从XDocument中读取项目的顺序?

所以我正在做的是使用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 EachDatabase节点上的循环中,它们将按照它们出现在xml文件中的顺序被拉出?(对于文件节点也一样)XElementdatabase.Elements("Database")

据我所知,情况确实如此,但我只是想在开始在生产数据库上使用它之前进行验证.

.net xml linq

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

确定.net windows-service无法启动的原因

我试图确定为什么我可以在大量机器上成功安装的.Net服务无法在某些机器上启动.

当在这些机器上启动服务时,服务立即停止,因此我的假设是用户没有足够的权限来安装服务或者服务存在问题; 但是,这两个条件都是错误的(服务有效并且它们具有足够的权限).

我应该采取哪些步骤来确定服务无法启动的原因?

编辑

由于提供了一些答案,我弄清楚出了什么问题,请参阅我的答案,了解我的解决方案.

.net windows-services

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

c#isBackground线程没有正确终止

我有一个后台线程用于与GUI分开处理,一切都在线程之间正常工作.但是,当我关闭应用程序时,程序"关闭"但不会终止该过程.后台线程似乎保持程序活着.

我设置了"myThreadInstance.IsBackground = true;",我认为这需要C#在它被杀死时杀死它.

我在Visual Studio(2010,使用.NET 4.0)中测试了这一切,并且在第一次构建之后,其余都失败了,因为exe仍在使用中,因此它无法覆盖它.看着任务经理,就在那里.杀死Visual Studio会释放释放我的exe的vbhost进程.杀死我的exe进程,让vbhost在一两秒内重新生成它.

c# multithreading

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