我使用实体框架6,代码优先的方法,以及asp.net MVC5。
剃刀视图都是强类型的,并且大多数视图模型都包含DAL模型。有些视图直接使用DAL中的模型。我想知道这会带来什么样的安全风险。让我来演示一下:
public class SomeViewModel {
public SomeModel SomeModel {get;set;}
public int OtherProperty {get;set;}
}
在剃刀视图中:
@model SomeViewModel
在剃刀视图中,我公开了两个潜在的安全风险: SomeModel实例的db和实体的动态代理id (或其他任何
一个常见的情况是,应用程序有用户和组,只有管理组的用户才能添加/删除用户。我可能有一个控制器动作,它是"@group.add_member if current_user.is_admin“
测试这种行为似乎应该是模型单元测试的一部分,因为它是负责单个任务的一段代码。但我不知道如何最好地包含这样一个事实,即该方法的正确性取决于控制器。我在想:
的一种选择是重新定义模型方法,以便为current_user采取额外的param,但这似乎有点难看。的另一个选择是只测试模型中的"add_user“,而不是在控制器测试中检查'is_admin‘行为,尽管我认为这是一个模型问题。的
您好,我有一个领域模型,这是很好和干净。例如:
public class Blog
{
public int Id {get;set;}
public string Title {get;set;}
public string Body {gets;set;}
}
为什么实体框架强迫我用RowVersion属性污染域模型以提供并发性?
我的模型不想或不需要知道这一点,所以为什么我要强制使用它呢?有没有其他方法来执行并发检查?如果是这样,它是比添加行版本更好/更差,还是更快/更慢?或者,我是否可以将RowVersion添加到不在域模型中的其他位置。我使用的是EF 4.1和