小编Hac*_*ese的帖子

如何在C#中获取线程ID

public bool HasItemsFromPropertySet(InfoItemPropertySet propertySet, CompositeInfoItem itemRemoved)
    {
        var itemAndSubItems = new InfoItemCollection();
        if (itemRemoved != null)
        {
            itemAndSubItems.Add(itemRemoved);
            //foreach (InfoItem item in itemRemoved.AllDescendants)
            itemAndSubItems.AddRange(itemRemoved.AllDescendants);
        }
        return AllItems.AsParallel().Any(item => item.PropertySet == propertySet && !itemAndSubItems.Contains(item));
    }
Run Code Online (Sandbox Code Playgroud)


在我的代码上面我使用AsParallel().Any()如何获得由AsParellel.Any()生成的线程的线程ID ...

c# parallel-extensions task-parallel-library

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

String.Format() - 重新传递参数但添加更多参数

我想做那样的事情:

public string GetMessage(params object otherValues[]) {
    return String.Format(this.Message, this.FirstValue, otherValues);
}
Run Code Online (Sandbox Code Playgroud)

所以,我想修复一系列参数,String.Format()但添加一个新参数.

什么是最好的方法,知道我们可以"重建"一个新的对象数组,这似乎并不好.

.net c# string-formatting params-keyword

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

使用Restore-SqlDatabase cmdlet时无法绑定RelocateFile

我在我的机器上安装了SQL Server 2012 Developer.我也安装了SQL Server 2014管理对象,这可能是问题的根源.

我正在编写一个模块,通过Powershell自动执行一些常见的开发任务.其中之一是简单地将现有数据库复制到新数据库.

我知道有三种不同的备份和还原方法:执行SQL语句,SMO对象和SQLPS cmdlet.我对SQLPS路线感兴趣.这是我的功能:

push-location
import-module sqlps -disablenamechecking
pop-location

function Copy-Database {
    param (
        [string] $database,
        [string] $newDatabase
    )

    $backupFile = "$database-{0:yyyyMMddhhmmss}.bak" -f (get-date)
    backup-sqldatabase -serverinstance $defaultServerInstance -database $database -backupfile $backupFile -copyonly

    $solutionName = $newDatabase

    $mdf = New-Object Microsoft.SqlServer.Management.Smo.RelocateFile("MyDb_Data", "$defaultDatabaseRootPath\$solutionName\$newDatabase.mdf")
    $ldf = New-Object Microsoft.SqlServer.Management.Smo.RelocateFile("MyDb_Log", "$defaultDatabaseRootPath\$solutionName\$newDatabase.ldf")

    restore-sqldatabase -serverinstance $defaultServerInstance -database $newDatabase -backupfile $backupFile -RelocateFile @($mdf,$ldf)
}
Run Code Online (Sandbox Code Playgroud)

它备份数据库,但是当它尝试还原时,我收到以下错误:

Restore-SqlDatabase:无法绑定参数'RelocateFile'.无法将类型为"Microsoft.SqlServer.Management.Smo.RelocateFile"的"Microsoft.SqlServer.Management.Smo.RelocateFile"值转换为"Microsoft.SqlServer.Management.Smo.RelocateFile".

此处还描述了此问题:Restore-SqlDatabase cmdlet中的RelocateFile属性的问题

我接受这个问题可能是集会中的冲突.接受的答案提供了两个建议:

  1. 确保版本匹配.
  2. 使用Microsoft.SqlServer.Management.Smo.Restore.SqlRestore方法而不是Restore-SqlDatabase cmdlet.

但是,他们只解释了如何做#2.我想知道如何使用Restore-SqlDatabasecmdlet 使其工作.

sql-server powershell smo

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

在数据库中存储Windows SID以进行查找

我有一个ASP.NET MVC应用程序,我需要允许客户根据他们的环境配置MembershipProviders,但仍然能够将MembershipUser映射到我们数据库中的具体User模型.

Membership.GetUser()将允许我访问登录用户Membership.ProviderUserKey.我可以使用它来关联用户记录.我们的自定义SQL提供程序将只返回User.Id,但AD是另一回事.在那种情况下,ProviderUserKey是一个IdentityReference.

正如您所想象的那样,这些查找将非常频繁地发生(尽管缓存可以帮助减少数据库级别的查找).

我无法确定哪条路径更好:将SID存储为varbinary或varchar列.此列不是主键,也不具有聚簇索引.知道我可以很好地索引字符串,并且以字符串格式读取SID肯定比二进制更好.有谁愿意分享他们如何解决这种情况?


更新

我不知道在我发布之前我在搜索时是如何错过这个问题的,但是看起来非常清楚,ActiveDirectoryMembershipProvider并且ActiveDirectoryMembershipUser现在还没有完全按照手头的任务进行裁剪.

SO问题的答案与以下文章相关联,其中陈述如下:

SID的相对标识符部分相对于域是唯一的,因此如果域发生更改,则相对标识符也会更改.

因此,当User对象从一个域移动到另一个域时,必须为用户帐户生成新的SID并将其存储在Object-SID属性中.

但是,每个组和用户都有一个Object-GUID,即使移动了帐户,它也永远不会改变.因此,我应该在我的User类中使用Object-GUID,而不是Object-SID.否则,某人的用户记录如果被移动则将被放弃,从而打破他们的主体与他们创建的数据之间的关系.

不幸的是,ActiveDirectoryMembershipUser不让我得到Object-GUID.所以,我要么必须在ActiveDirectoryMembershipUser工作之后将SID转换为GUID ,要么创建我自己的MembershipProvider,在现场完成我需要的所有工作.不幸的是,这意味着我可能不得不重复已经完成的工作ActiveDirectoryMembershipProvider.

sql database-design asp.net-membership

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

流畅的NHibernate:映射复杂的多对多(带有附加列)和设置提取

我需要一个Fluent NHibernate映射来完成以下操作(如果没有别的,我还将采用适当的NHibernate XML映射并对其进行反向工程).


细节

我在两个实体之间有多对多的关系:ParentChild.这是通过附加表来完成的,用于存储父母和孩子的身份.但是,我还需要在该映射上定义两个附加列,以提供有关该关系的更多信息.

这大致是我如何定义我的类型,至少是相关部分(其中Entity一些基类型提供Id属性并基于该Id检查等价):

public class Parent : Entity
{
    public virtual IList<ParentChildRelationship> Children { get; protected set; }

    public virtual void AddChildRelationship(Child child, int customerId)
    {
       var relationship = new ParentChildRelationship
                        {
                           CustomerId = customerId,
                           Parent = this,
                           Child = child
                        };
       if (Children == null) Children = new List<ParentChildRelationship>();
       if (Children.Contains(relationship)) return;
       relationship.Sequence = Children.Count;
       Children.Add(relationship);
    }
}

public class Child : Entity
{
    // child doesn't care …
Run Code Online (Sandbox Code Playgroud)

.net nhibernate many-to-many nhibernate-mapping fluent-nhibernate

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

asp.net MVC 3/4相当于一个response.filter

我需要拦截将发送到浏览器的所有html并替换那里的一些标签.这需要在全球范围内和每个视图中完成.使用C#在ASP.NET MVC 3或4中执行此操作的最佳方法是什么?在过去,我使用Global.asax(vb)中的'response.filter'在ASP.net Webforms中完成了此操作

Private Sub Global_PreRequestHandlerExecute(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.PreRequestHandlerExecute
    Response.Filter = New ReplaceTags(Response.Filter)
End Sub
Run Code Online (Sandbox Code Playgroud)

这会调用我创建的一个继承自system.io.stream的类,并通过html来替换所有标记.我不知道如何使用C#在ASP.NET MVC 4中执行此操作.你可能已经注意到我在MVC世界中是一个全新的人.

asp.net response.filter asp.net-mvc-3

5
推荐指数
2
解决办法
5087
查看次数

pip --find-links选项似乎不起作用

当尝试从pip安装时

$ pip install Django==1.4
Run Code Online (Sandbox Code Playgroud)

我很有可能得到

获取http://pypi.python.org/packages/source/D/Django/Django-1.4.tar.gz#md5=ba8e86198a93c196015df0b363ab1109时出错 (来自http://pypi.python.org/simple/Django/)

根据Jacob 在他的博客中的建议,我补充说--use-mirrors但没有运气.对此博客发表的一些评论指出,他们自己托管文件.所以我托管tar.gz文件说example.com/packages目录.

下面的命令成功安装了Django 1.4

$ pip install https://example.com/packages/Django-1.4.tar.gz
Run Code Online (Sandbox Code Playgroud)

下面的命令似乎不起作用,想知道我做错了什么.

$ pip install --find-links=https://example.com/packages/ Django==1.4
$ pip install --find-links "https://example.com/packages/" Django==1.4
$ pip install -f https://example.com/packages/ Django==1.4
Run Code Online (Sandbox Code Playgroud)

造成:

获取http://pypi.python.org/packages/source/D/Django/Django-1.4.tar.gz#md5=ba8e86198a93c196015df0b363ab1109 (来自http://pypi.python.org)下载/解压缩Django == 1.4错误 / simple/Django /)

不知道为什么它似乎忽略了--find-links选项为Packages目录启用了Apache自动索引,因此将浏览器指向https://example.com将返回tar.gz文件列表

任何建议都会得到满足

python installation pip

5
推荐指数
0
解决办法
1545
查看次数

在c#中获取已安装的驱动器

DriveInfo.GetDrives() 将列举所有使用驱动器号挂载的卷,但是有没有办法(没有p /调用Win32)枚举原始卷,或者查看可能挂载在文件夹而不是驱动器号中的卷?

c#

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

jQuery.parseJSON不适用于来自MVC控制器操作的JsonResult

我试图使用jQuery.parseJSON来解析MVC3控制器操作的返回值.

控制器:

    [HttpPost]
    public JsonResult LogOn(LogOnModel model, string returnUrl)
    {
        .. do stuff ..

        if (errors.Count() < 0)
        {
            return Json(new object[] { true, model, errors });

        }

        return Json(new object[] { false, model, errors });
    }
Run Code Online (Sandbox Code Playgroud)

jQuery的:

$.ajax({
                url: form.attr('action'),
                type: "POST",
                dataType: "json",
                data: form.serialize(),
                success: function (data) {
                    var test = jQuery.parseJSON(data);                      
                }   
            });
Run Code Online (Sandbox Code Playgroud)

来自小提琴手的Json结果:

Content-Type:application/json; 字符集= utf-8的

[假,{ "用户名": "1", "密码": "2", "与rememberMe":假},[{ "键": "", "错误":[{ "异常":空"的ErrorMessage ":"提供的用户名或密码不正确."}]}]]

Fiddler可以解析结果:

在此输入图像描述

对jQuery.parseJSON的调用返回null.我的问题是,如何将json返回值解析为对象?

谢谢!

asp.net-mvc jquery json asp.net-mvc-3

4
推荐指数
1
解决办法
7541
查看次数

Response.StatusCode 在 nunit 测试中为 null

我正在编写单元测试用例。我正在尝试为此方法编写单元测试,但显示错误。如何在 mvc3 框架和犀牛模拟中对这个方法进行单元测试。

        public ActionResult UnderConstruction()
    {
        Response.StatusCode = (int)HttpStatusCode.TemporaryRedirect;
        ErrorModel model = new ErrorModel()
        {
            ErrorMessage = "This page is still under construction; please check back later.",
            Title = "Under Construction"
        };
        return View("Error", model);
    }
Run Code Online (Sandbox Code Playgroud)

c# asp.net-mvc nunit response asp.net-mvc-3

4
推荐指数
1
解决办法
2434
查看次数