我知道从存储过程返回标量值的首选方法是使用RETURN
或OUTPUT
参数.但是,假设我有一个存储过程,它使用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
返回值的解决方案.
提前致谢.
使用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)
正如您所看到的,它并不像我正在寻找的解决方案那样优雅.
我打算实现一个自定义DisplayAttribute
,以允许基于模型值的动态显示值,但我不能因为DisplayAttribute
是密封的.
在我开始编写我自己的客户属性来模仿其行为之前DisplayAttribute
,有人能想到为什么这个被密封了吗?我假设它背后有一个原因,如果是这样,那可能是我不应该试图通过滚动我自己"破解"这个限制的原因.
我不是要求任何人阅读微软的想法,我只是希望有人已经知道密封的设计理由,以便在滚动(或避免)我自己的实现时考虑到这一点.
当我设计MVC应用程序时,我通常尝试将几乎所有逻辑(尽可能多)保留在我的应用程序之外.我尝试将其抽象为一个与我的存储库和域实体接口的服务层.
所以,我的控制器方法最终看起来像这样:
public ActionResult Index(int id)
{
return View(Mapper.Map<User, UserModel>(_userService.GetUser(id)));
}
Run Code Online (Sandbox Code Playgroud)
因此,假设我有很好的覆盖测试我的服务,并且我的动作方法很简单,就像上面的例子一样,单元测试这些控制器方法是否过度?
如果你为看起来像这样的方法构建单元测试,你从测试中获得了什么价值?
我有一个方法需要有条件地执行一个方法,如下所示:
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)
我该怎么做呢?
我目前有一个项目,我已经开始使用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
我有一个自定义的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) 我想使用反射遍历我的模型属性,然后将它们传递给一个方法,期望我的属性为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() …
我们有一个具有多个实例的 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()
似乎不会触发重启。
免责声明:我是编程新手,但对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
只设置并且从不引用,因此省略了这行代码.
这两个中的任何一个是正确的,还是在循环中每次迭代都实际执行?
asp.net-mvc ×4
c# ×4
unit-testing ×2
azure ×1
javascript ×1
jquery ×1
lambda ×1
python ×1
reflection ×1
sql ×1
sql-server ×1