小编The*_*son的帖子

使用Mock IDbSet对实体框架进行单元测试

我以前从来没有真正做过单元测试,而且我在第一次测试时偶然发现并绊倒了.问题是_repository.Golfers.Count();始终表明它DbSet是空的.

我的测试很简单,我只想添加一个新的高尔夫球手

[TestClass]
public class GolferUnitTest //: GolferTestBase
{
    public MockGolfEntities _repository;

    [TestMethod]
    public void ShouldAddNewGolferToRepository()
    {
        _repository = new MockGolfEntities();

        _repository.Golfers = new InMemoryDbSet<Golfer>(CreateFakeGolfers());

        int count = _repository.Golfers.Count();
        _repository.Golfers.Add(_newGolfer);

        Assert.IsTrue(_repository.Golfers.Count() == count + 1);
    }

    private Golfer _newGolfer = new Golfer()
    {
        Index = 8,
        Guid = System.Guid.NewGuid(),
        FirstName = "Jonas",
        LastName = "Persson"
    };
    public static IEnumerable<Golfer> CreateFakeGolfers()
    {
        yield return new Golfer()
        {
            Index = 1,
            FirstName = "Bill",
            LastName = "Clinton",
            Guid …
Run Code Online (Sandbox Code Playgroud)

c# asp.net unit-testing mocking repository

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

EF使用skip并采用存储过程

如何Skip()Take()实体框架中工作调用存储过程的时候?我无法访问sql profiler进行检查,但我想确保优化服务器之间发送的数据量.

假设我有以下代码,其中MyStoredProcedure返回1000+行.

List<MyComplex_Result> myComplexList = db.MyStoredProcedure()
    .Skip(50)
    .Take(10);
Run Code Online (Sandbox Code Playgroud)

Take(10)确保只有那些行的10从数据库服务器发送到Web服务器,或将全部1000+行发送(虽然只有10会被发送到客户端)?

c# sql stored-procedures entity-framework

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

MVC路由与部分类

我有一个失控的请求控制器,我想在几个控制器上划分操作,同时保持一个干净的URL.我正在尝试路由,但没有成功.我已经阅读了一些关于路由的示例和教程,但是,虽然我理解这些示例,但似乎没有什么适用于我的情况,我觉得不是更明智.我想要的是Requests/Approval在我的ApprovalController而不是我的RequestController上处理URL ,所以我写了以下内容.

public static void RegisterRoutes(RouteCollection routes)
    {
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

        routes.MapRoute(
            "Default", // Route name
            "{controller}/{action}/{id}", // URL with parameters
            new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
        );

        routes.MapRoute(
            "Approval",
            "Request/{controller}/{action}",
            new { controller = "Approval", action="Index", id = "" }
        );

    }
Run Code Online (Sandbox Code Playgroud)

但它不起作用.为什么?我的视图中有一个名为Approval的文件夹,在那里我有一个名为的文件Index.cshtml.我该如何编写MapRoute代码?

编辑

我添加了我所有的路线

c# asp.net-mvc asp.net-mvc-routing

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