小编Jer*_*ose的帖子

从存储过程中的SELECT语句中获取标量值

我知道从存储过程返回标量值的首选方法是使用RETURNOUTPUT参数.但是,假设我有一个存储过程,它使用select语句返回值:

CREATE PROC spReturnNumber AS

SELECT 1
Run Code Online (Sandbox Code Playgroud)

是否有可能从另一个存储过程中获取此值?

CREATE PROC spCheckNumber AS

EXEC spReturnNumber -- <-- get the return value here?
Run Code Online (Sandbox Code Playgroud)

澄清:我需要一个不需要使用OUTPUT参数或使用RETURN返回值的解决方案.

提前致谢.

sql sql-server stored-procedures

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

使用jQuery设置元素可见性

使用jQuery,元素上是否有一些属性我可以设置为true/false来控制该元素的可见性?

基本上,我需要这样的东西:

$(this).visible(someCondition);
Run Code Online (Sandbox Code Playgroud)

toggle() 将无法工作,因为我需要能够告诉它是否会显示.

show()hide()工作,但我必须这样做:

if (someCondition) {
    $(this).show();
}
else {
    $(this).hide();
}
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,它并不像我正在寻找的解决方案那样优雅.

javascript jquery

3
推荐指数
1
解决办法
115
查看次数

为什么System.ComponentModel.DataAnnotations.DisplayAttribute已密封?

我打算实现一个自定义DisplayAttribute,以允许基于模型值的动态显示值,但我不能因为DisplayAttribute是密封的.

在我开始编写我自己的客户属性来模仿其行为之前DisplayAttribute,有人能想到为什么这个被密封了吗?我假设它背后有一个原因,如果是这样,那可能是我不应该试图通过滚动我自己"破解"这个限制的原因.

我不是要求任何人阅读微软的想法,我只是希望有人已经知道密封的设计理由,以便在滚动(或避免)我自己的实现时考虑到这一点.

asp.net-mvc data-annotations asp.net-mvc-3

3
推荐指数
1
解决办法
1568
查看次数

是否真的有必要测试控制器方法?

当我设计MVC应用程序时,我通常尝试将几乎所有逻辑(尽可能多)保留在我的应用程序之外.我尝试将其抽象为一个与我的存储库和域实体接口的服务层.

所以,我的控制器方法最终看起来像这样:

public ActionResult Index(int id)
{
    return View(Mapper.Map<User, UserModel>(_userService.GetUser(id)));
}
Run Code Online (Sandbox Code Playgroud)

因此,假设我有很好的覆盖测试我的服务,并且我的动作方法很简单,就像上面的例子一样,单元测试这些控制器方法是否过度?

如果你为看起来像这样的方法构建单元测试,你从测试中获得了什么价值?

asp.net-mvc unit-testing asp.net-mvc-3

3
推荐指数
1
解决办法
137
查看次数

在C#中传入匿名方法/函数作为参数

我有一个方法需要有条件地执行一个方法,如下所示:

int MyMethod(Func<int> someFunction)
{
    if (_someConditionIsTrue)
    {
        return someFunction;
    }

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我希望能够将Linq查询作为someFunction传递给MyMethod:

int i = MyMethod(_respository.Where(u => u.Id == 1).Select(u => u.OtherId));
Run Code Online (Sandbox Code Playgroud)

我该怎么做呢?

c# anonymous-methods anonymous-function

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

EF4.1 DbSet与EF4 ObjectContext和单元测试

我目前有一个项目,我已经开始使用EF4,我回过头来加入单元测试.我正在使用EF4 POCO T4模板和我的模型(数据库)第一个上下文.我正在为我的DAC逻辑使用通用存储库,并为持久性使用工作单元模式.

但是,我遇到了一些理解如何模拟ObjectContext/ObjectSet的问题.我查看了使用本文中FakeObjectSet<T>示例,但它仍然留下了一些内容,例如自动递增标识和事务回滚.

所以,我试图找到一个好的EF设计,仍然可以完全单元测试.

我的问题是,EF4.1 DbSet是否解决了很多问题,单元测试EF4?有没有很好的综合性文章来设计可完全测试的EF4.1解决方案?

另外,请记住,我需要一个模型优先的解决方案.

提前致谢.

unit-testing entity-framework entity-framework-4 entity-framework-4.1

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

派生属性上的自定义模型绑定不起作用

我有一个自定义的ModelBinder(MVC3),由于某种原因没有被解雇.以下是相关的代码:

视图

@model WebApp.Models.InfoModel
@using Html.BeginForm()
{
    @Html.EditorFor(m => m.Truck)
}
Run Code Online (Sandbox Code Playgroud)

EditorTemplate

@model WebApp.Models.TruckModel
@Html.EditorFor(m => m.CabSize)
Run Code Online (Sandbox Code Playgroud)

ModelBinder的

public class TruckModelBinder : IModelBinder
{
    public object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext)
    {
        throw new NotImplementedException();
    }
}
Run Code Online (Sandbox Code Playgroud)

Global.asax中

protected void Application_Start()
{
    ...
    ModelBinders.Binders.Add(typeof(TruckModel), new TruckModelBinder());
    ...
}
Run Code Online (Sandbox Code Playgroud)

InfoModel

public class InfoModel
{
    public VehicleModel Vehicle { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

VehicleModel

public class VehicleModel
{
    public string Color { get; set; }
    public int NumberOfWheels { get; set; }
} …
Run Code Online (Sandbox Code Playgroud)

c# asp.net-mvc model-binding asp.net-mvc-3

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

将属性从反射传递到表达式

我想使用反射遍历我的模型属性,然后将它们传递给一个方法,期望我的属性为en表达式.

例如,给定此模型:

public class UserModel
{
    public string Name { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

这个验证器类:

public class UserValidator : ValidatorBase<UserModel>
{
    public UserValidator()
    {
        this.RuleFor(m => m.Username);
    }
}
Run Code Online (Sandbox Code Playgroud)

和我的ValidatorBase类:

public class ValidatorBase<T>
{
    public ValidatorBase()
    {
        foreach (PropertyInfo property in 
                     this.GetType().BaseType
                         .GetGenericArguments()[0]
                         .GetProperties(BindingFlags.Public | BindingFlags.Insance))
        {
            this.RuleFor(m => property); //This line is incorrect!!
        }
    }

    public void RuleFor<TProperty>(Expression<Func<T, TProperty>> expression)
    {
        //Do some stuff here
    }
}
Run Code Online (Sandbox Code Playgroud)

问题在于ValidatorBase()构造函数 - 假设我有PropertyInfo我需要的属性,我应该将什么作为expression参数传递给RuleFor方法,这样它就像UserValidator() …

c# reflection asp.net-mvc lambda

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

RoleEnvironment.RequestRecycle() 不会触发重启

我们有一个具有多个实例的 Azure 云服务。这些实例可能会陷入致命状态,此时我们希望触发实例重启。

我们试过调用:

RoleEnvironment.RequestRecycle();
Run Code Online (Sandbox Code Playgroud)

但根据 Azure 门户,该实例继续保持正常运行,没有任何重启迹象。

我们甚至尝试通过发出以下命令将其置于错误状态:

Environment.FailFast("Failed.");
Run Code Online (Sandbox Code Playgroud)

但这似乎也不会触发重启(再次,至少根据 Azure 门户)。

我们是否应该在 Azure 门户中看到这种情况发生,如果是,可能会阻止它重新启动?

更多细节

基本上,作为我们逻辑的一部分,我们正在旋转一个单独的线程来执行一些繁重的处理,并且这个处理有一个超时,此时我们需要重新启动以终止线程并释放所有消耗的资源。我知道理想情况下我们会对线程进行更适当的处理并取消它,但这不是目前的选择。所以我们只想重新启动。

简化版本如下所示:

var mainTask = Task.Run(() => DoHeavyProcessing());
var timeoutTask = Task.Delay(TimeSpan.FromMinutes(10));

if (Task.WaitAny(mainTask, timeoutTask) == 1)
{
    RoleEnvironment.RequestRecycle();
}
Run Code Online (Sandbox Code Playgroud)

但同样,RequestRecycle()似乎不会触发重启。

c# multithreading azure azure-cloud-services

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

这个计算是用Python执行的吗?

免责声明:我是编程新手,但对Python不熟悉.这可能是一个非常基本的问题.

我有以下代码块:

for x in range(0, 100):
    y = 1 + 1;
Run Code Online (Sandbox Code Playgroud)

1 + 1第二行的计算是执行了100次?

我有两个怀疑为什么它可能不会:

1)编译器将其1 + 1视为常量值,从而将此行编译为y = 2;.

2)编译器看到y只设置并且从不引用,因此省略了这行代码.

这两个中的任何一个是正确的,还是在循环中每次迭代都实际执行?

python python-internals

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