小编Ste*_*veC的帖子

Moq:非可覆盖成员的设置无效:x => x.GetByTitle("asdf")

不知道如何解决这个问题,尝试对方法"GetByTitle"进行单元测试

以下是我的定义:

public class ArticleDAO :  GenericNHibernateDAO(IArticle, int>, IArticleDAO
{
    public IArticle GetByTitle(string title)
    {
        IQuery query = Session.CreateQuery("...")
        return query.UniqueResult<IArticle>();
    }
}

public interface IArticleDAO
{
    IArticle GetByTitle(string title);
}
Run Code Online (Sandbox Code Playgroud)

单元测试:

[Test]
public void can_load_by_title()
{
    _mockDaoFactory.Setup(x => x.GetArticleDao())
                                .Returns(_mockArticleDao.Object);
    _mockArticleDao.Setup(x => x.GetByTitle("some title"))
                                .Returns(article1.Object);

    _articleManager.LoadArticle("some title");

    Assert.IsNotNull(_articleManager.Article);
}
Run Code Online (Sandbox Code Playgroud)

运行测试给出了错误:

System.ArgumentException: Invalid setup on a non-overridable member:
x => x.GetByTitle("some title")
Run Code Online (Sandbox Code Playgroud)

更新

[Setup]看起来像:

[Setup]
public void SetUp()
{
     _mockDaoFactory = new Mock<IDaoFactory>();
     _mockArticleDao = new Mock<ArticleDao>();

     _articleManager …
Run Code Online (Sandbox Code Playgroud)

c# nhibernate resharper nunit moq

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

ContractFilter在EndpointDispatcher异常处不匹配

我有以下场景,我正在尝试测试:

  1. 一个常见的WSDL
  2. WCF端点,它基于WSDL实现对象并托管在IIS中.
  3. 一个客户端应用程序,它使用基于WSDL的代理来创建请求.

当我从客户端到服务端点进行Web服务调用时,我得到以下异常:

{"与动作'的消息HTTP:// IMyService/CreateContainer ’不能在接收器处进行处理,由于在EndpointDispatcher一个ContractFilter不匹配,这可能是因为无论是合同不匹配(发送者和接收者之间不匹配的操作)或一发送方和接收方之间的绑定/安全性不匹配.检查发送方和接收方是否具有相同的合同和相同的绑定(包括安全要求,例如消息,传输,无)."}

我开始使用MS Service Trace Viewer,但不确定在哪里查看.在查看客户端和端点中的类时,它们看起来完全相同.

如何开始调试此问题?

导致此异常的可能原因是什么?

wcf

108
推荐指数
8
解决办法
26万
查看次数

从asp.net web api post action重定向

我是ASP.NET 4.0 Web API的新手.我们可以在POST操作结束时重定向到另一个URL吗?Response.Redirect(url)

实际上我www.abcmvc.com通过Web API(比方说www.abcwebapi.com/upload)从MVC应用程序上传文件(比如说)

upload是POST动作.我将多部分表单发布到Web API上传控制器的后期操作.上传后我想重定向回www.abcmvc.com.

这可能吗?

asp.net-mvc c#-4.0 asp.net-mvc-4 asp.net-web-api

104
推荐指数
4
解决办法
9万
查看次数

由于找不到nuget.targets错误,Visual Studio中的打开项目失败

所以我从http://www.twitterizer.net/downloads/下载了Twitterizer

我尝试在Visual Studio中打开它并获取所有这些nuget错误:

The imported project "C:\Twitterizer\.nuget\nuget.targets" was not found. 
Confirm that the path in the <Import> declaration is correct, and that the file 
exists on disk.
Run Code Online (Sandbox Code Playgroud)

到底是怎么回事.我该如何处理?

twitterizer visual-studio nuget

102
推荐指数
4
解决办法
4万
查看次数

要设计解决的元组有什么要求?

我正在研究元组的新C#特性.我很好奇,元组设计要解决什么问题?

您在应用中使用了什么元组?

更新

感谢到目前为止的答案,让我看看我是否在脑子里直截了当.已经指出了元组的一个很好的例子作为坐标.这看起来不错吗?

var coords = Tuple.Create(geoLat,geoLong);
Run Code Online (Sandbox Code Playgroud)

然后像这样使用元组:

var myLatlng = new google.maps.LatLng("+ coords.Item1 + ", "+ coords.Item2 + ");
Run Code Online (Sandbox Code Playgroud)

那是对的吗?

c# tuples

94
推荐指数
5
解决办法
3万
查看次数

在没有先查询的情况下更新记录?

让我们说我查询数据库并加载项目列表.然后我打开详细视图表单中的一个项目,而不是从数据库中重新查询该项目,我从列表中的数据源创建项目的实例.

有没有办法可以更新数据库记录而无需获取单个项目的记录?

以下是我现在正在做的一个示例:

dataItem itemToUpdate = (from t in dataEntity.items
                                 where t.id == id
                                 select t).FirstOrDefault();
Run Code Online (Sandbox Code Playgroud)

然后在拉动记录后,我更新项目中的一些值并将记录推回:

itemToUpdate.itemstatus = newStatus;
dataEntity.SaveChanges();
Run Code Online (Sandbox Code Playgroud)

我认为有更好的方法可以做到这一点,任何想法?

c# entity-framework

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

TSQL - 如何在BEGIN .. END块中使用GO?

我正在生成一个脚本,用于自动将更改从多个开发数据库迁移到暂存/生产.基本上,它需要一堆更改脚本,并将它们合并到一个脚本中,将每个脚本包装在一个IF whatever BEGIN ... END语句中.

但是,某些脚本需要一个GO语句,以便例如SQL解析器在创建新列后知道它.

ALTER TABLE dbo.EMPLOYEE 
ADD COLUMN EMP_IS_ADMIN BIT NOT NULL
GO -- Necessary, or next line will generate "Unknown column:  EMP_IS_ADMIN"
UPDATE dbo.EMPLOYEE SET EMP_IS_ADMIN = whatever
Run Code Online (Sandbox Code Playgroud)

但是,一旦我将其包装在一个IF块中:

IF whatever
BEGIN
    ALTER TABLE dbo.EMPLOYEE ADD COLUMN EMP_IS_ADMIN BIT NOT NULL
    GO
    UPDATE dbo.EMPLOYEE SET EMP_IS_ADMIN = whatever
END
Run Code Online (Sandbox Code Playgroud)

它失败了,因为我发送了一个BEGIN没有匹配的END.但是,如果我删除GO它,它会再次抱怨一个未知的列.

有没有办法在单个IF块中创建和更新同一列?

sql t-sql sql-server sql-server-2008

89
推荐指数
5
解决办法
5万
查看次数

如何刷新Visual Studio 2017团队资源管理器面板中的远程分支列表?

如何刷新Visual Studio Team Explorer面板中的远程分支列表?

在Visual Studio 2017,团队资源管理器,分支面板中,我可以在VSTS实例中看到10个左右的分支.

然后在Chrome中,我删除了一些较旧的分支并创建了一个新分支.

切换回VS 2017,但遥控器/原始分支列表仍然显示旧列表,我无论如何都找不到刷新它.

我尝试更改为另一个回购,团队资源管理器标题上的F5​​刷新,我甚至关闭并重新打开VS 2017 ... 但没有更新清单以匹配VSTS门户显示的内容

azure-devops visual-studio-2017

89
推荐指数
5
解决办法
4万
查看次数

如何从TFS源代码管理中排除特定文件

我们有多个配置文件(app.DEV.config,app.TEST.config等)和一个预构建事件,它将正确的配置文件复制到app.config.显然配置特定的文件是在源代码控制中---但目前App.Config也是如此,而且不应该这样.

如何将一个文件标记为从源代码管理中排除,但显然不是来自项目.

我正在使用VS 2005和2005 Team Explorer.

tfs

88
推荐指数
7
解决办法
9万
查看次数

EF 4.1异常"提供程序未返回ProviderManifestToken字符串"

我试图复制在MSDN上找到的示例.我正在使用ASP.NET和EF 4.1(CTP?).我已经使用NuGet来安装EntityFramework包.

我收到此错误:The provider did not return a ProviderManifestToken string...并且永远不会创建数据库.

这是我的连接字符串:

<add name="HospitalContext"
   connectionString=
   "data source=.\SQLExpress;initial catalog=NewTestDB;integrated security=True;"
   providerName="System.Data.SqlClient"/>
Run Code Online (Sandbox Code Playgroud)

这是我的代码:

var pat = new Patient { Name = "Shane123132524356436435234" };
db.Patients.Add(pat);

var labResult = new LabResult { Result = "bad", Patient = pat };

int recordAffected = db.SaveChanges();
Run Code Online (Sandbox Code Playgroud)

这是我的背景:

public class HospitalContext : DbContext
{
    static HospitalContext()
    {
        Database.SetInitializer(new HostpitalContextInitializer());
    }

    public DbSet<Patient> Patients { get; set; }
    public DbSet<LabResult> LabResults { get; set; }
}

public class …
Run Code Online (Sandbox Code Playgroud)

sql asp.net entity

88
推荐指数
4
解决办法
9万
查看次数