小编Kim*_*mpo的帖子

在Sublime文本2中缩进代码?

在Visual Studio中,我可以按Ctrl+ K+ D缩进所有内容,以便代码结构良好且可读.Sublime 2中有一个快捷方式可以做同样的事情吗?

sublimetext sublimetext2

496
推荐指数
9
解决办法
53万
查看次数

我什么时候应该打开和关闭MongoDB连接?

我对MongoDB和NoSQL很新,我刚刚开始使用MongoDB/Norm/ASP.NET MVC 3构建一个站点.

我想知道我应该如何确定与Mongo数据库的连接.

现在我有一个Basecontroller,它实现了MongoSession和onActionExecuted我处理它所以我所有的派生控制器都可以访问我的MongoSession.MongoSession类在其构造函数中打开一个连接,并将它放在Dispose()上,就像它今天的工作方式一样.

private IMongo _mongo;

public MongoSession()
{         
    _mongo = Mongo.Create("connString");      
} 

public void Dispose()
{
    _mongo.Dispose();
}
Run Code Online (Sandbox Code Playgroud)

如果我在控制器中做其他事情,我有点担心它可能会持续打开太长时间.

这种方法是否应该不会冒太多连接的风险,或者我应该做更像下面的示例方法?

   public void Add<T>(T item) where T : class, new()
   {
       using (var mongo = Mongo.Create("connString"))
       {
         mongo.GetCollection<T>().Insert(item); 
       }
   }
Run Code Online (Sandbox Code Playgroud)

另一个跟进问题是:

通过Norm"昂贵"操作打开和关闭MongoDB连接?

database-connection scoping mongodb norm mongodb-.net-driver

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

knockoutjs点击绑定在嵌套的foreach中不起作用

所以我有一个非常奇怪的问题,一个knockoutjs点击绑定没有附加到锚标签.其他data-bind =""有效但不是点击绑定.

您可以在下面看到HTML和viewmodel js文件的一部分

var tag = function (data) {
    this.count = data.Count;
    this.id = data.Id;
    this.title = data.Title;
    this.tagGroup = data.TagGroup;
};
 var tagContainer = function (data) {
    this.tagList = $.map(data.Tags, function (item) { return new tag(item); }); 
    this.letter = ko.observable(data.Letter);
};

var searchViewModel = function(){
   var self = this;

   self.tagContainerList = ko.observableArray([]); 

   self.addFilter = function (tag) { 
    //move tag to active filters and do some more cool stuff here 
    };


};

<div id="modal-all-tags" data-bind="with:searchViewModel">
    <ul data-bind="foreach:tagContainerList">
        <li>
            <span …
Run Code Online (Sandbox Code Playgroud)

javascript jquery asp.net-mvc-3 knockout-2.0 knockout.js

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

视觉工作室运行桌面上的卷曲大括号mac

我在我的Macbook air上运行桌面并行win7测试visual studio.一切都很好,除了我无法在视觉工作室内工作.

Curly大括号可以工作Shift + right-alt 7/8(在记事本中测试),但有些东西覆盖了visual studio中的键组合.

软件规格相似

Windows 7 Visual studio 2012 Resharper

我认为Resharper正在弄乱我.有谁知道如何关闭快捷方式,特别是键组合shift + right-alt + 7/8所以我可以让花括号再次工作.

macos resharper keyboard-shortcuts curly-braces visual-studio

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

RavenDB和分层文档

我使用RavenDB解决这个问题很困难.我有这些课程.我从中排除了很多属性以保持示例简单.

public class Menu
{
    public string Name { get; set; }
    public List<NavigationNode> Nodes { get; set; }
}

public class NavigationNode
{
    public string Text { get; set; }
    public Guid? PageId { get; set; }
    public string NodeType { get; set; }
    public List<NavigationNode> Nodes { get; set; }
}

public class Page
{
    public Guid PageId { get; set; }
    public string Slug { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

因此,您可以看到这是关于渲染导航菜单.节点列表是分层的,可以在理论上无限深入(当然实际上只有2-4个子级别).起初我将Slug存储在节点中但是意识到,如果页面Slug发生变化会发生什么,当页面更改slug时更改所有节点我将不得不遍历所有菜单,爬下层次结构并找到要更改的所有Slug值它们听起来不是最佳解决方案.

所以我认为应该可以构建一个索引,它将Page Slug与来自Node的其余数据结合在一个层次结构中.

我一直在阅读有关Map Reduce,Multimap和recurse的内容,但我甚至不知道从哪里开始.

我发现这个http://ravendb.net/docs/2.0/client-api/querying/static-indexes/indexing-hierarchies

这是一个简单的例子,我试图让一些东西开始,我甚至无法让它工作,因为我真的不明白我链接到上面的页面上的例子. …

recursion hierarchical-data ravendb

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

通过Ajax发布安全保存的最佳实践发布了asp.net MVC 3

我正在为几个用户开发Asp.Net MVC 3/knockout.js网站,他们可以保存有关他们网站的信息.这是该模型的简单版本

class{
string Id
string Name
string Url
string Description
}
Run Code Online (Sandbox Code Playgroud)

我想构建一个响应迅速的UI,以便所有加载保存等都将通过Ajax完成.

所以场景是当用户将som网站添加到他的列表并点击保存时,json字符串被发布到控制器中的Action方法.

一切正常.

问题是:

如何确保用户没有篡改id并实际保存有关其他用户网站的信息?

我当然是隐藏的,但任何具有一些网络知识的邪恶的人都可以轻易地改变身份.

security ajax post asp.net-ajax asp.net-mvc-3

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

恢复SQL Server 2008数据库后,“无效的对象名称”

我要切换虚拟主机并备份数据库。由于新主机的某些限制,我无法还原.bak文件,只能发送给他们,以便他们还原。一旦他们恢复了它,我就运行了我的应用程序

System.Data.SqlClient.SqlException: Invalid object name "<table name>"

每当我尝试从应用程序查询表时。但是,使用相同的用户名和密码通过Management Studio登录并查询表没有问题。

我正在使用SQL Server 2008运行MVC 3站点

有谁知道为什么在尝试运行我的应用程序时为什么会出现这些异常?

编辑:

更多信息:

我在旧数据库中使用的用户名是Kimpo54321,因此我创建的所有表都带有这样的前缀Kimpo54321。因此,我尝试将其添加到我的Web应用程序中的第一个查询中,这样就可以SELECT * FROM Kimpo54321.<tablename>使查询毫无例外地通过。

现在,我不必在应用程序中的前面为每个表名加上前缀,也不想将其应用于所有查询。有没有办法解决这个问题?

编辑:

我运行此命令是为了为每个表获取一条更改模式行,并将所有内容更改为dbo它,最后使其正常工作。thnx aaron为我指出了正确的方向,找到了答案

SELECT 'ALTER SCHEMA dbo TRANSFER ' + s.Name + '.' + o.Name 
    FROM sys.Objects o 
    INNER JOIN sys.Schemas s on o.schema_id = s.schema_id 
    WHERE s.Name = 'yourschema'
    And (o.Type = 'U' Or o.Type = 'P' Or o.Type = 'V')
Run Code Online (Sandbox Code Playgroud)

sql-server asp.net exception sql-server-2008 invalid-object-name

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

Ravendb Savechanges(); 花太长时间跑?

与RavenDB陷入了一个奇怪的问题

public ActionResult Save(RandomModel model)
{
//Do some stuff, validate model etc..

RavenSession.Store(model);
RavenSession.SaveChanges();


var newListOfModels = RavenSession.Query<RandomModel>().ToList();
return View("randomview",newListOfModels);
}
Run Code Online (Sandbox Code Playgroud)

newListOfModels不包含我刚用store方法添加的模型.

但是,如果我在savechanges之后添加Thread.Sleep(100),则存储的模型将包含在新列表中.

我是以错误的方式存储和保存到RavenDB的东西吗?

我该怎么做?

当然,只需将传入的模型添加到newListOfModels并运行SaveChanges,例如在basecontrollers onactionexecuted方法中,就可以解决这个问题.

我主要担心的是为什么我需要延迟线程才能查询documentsession并在那里找到我新添加的模型.

c# ravendb asp.net-mvc-3

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