小编jan*_*naj的帖子

ASP.NET MVC - 放置数据库查询的位置

我正在尝试学习ASP.NET MVC 4,我很困惑我应该把数据库查询放在哪里.我有PHP背景,特别是CodeIgniter,我习惯于将所有数据库查询放入模型中.我有这个问题:

    db.Orders.Where(order => order.columnName == columnName).SingleOrDefault();
Run Code Online (Sandbox Code Playgroud)

基于这个ASP.NET教程,我应该把它放在控制器中.但是,我发现了这个StackOverflow问题,它说我应该把它放在模型中(类似于我以前在PHP中做的).对同一问题的另一个答案提到了创建包含所有查询的存储库模式/类.

所以我的问题是,在代码维护(可读性,更改效果等)方面,以下选项的优缺点是什么?

  1. 控制器中的查询
  2. 模型中的查询
  3. 在单独的类/层中查询

.net asp.net asp.net-mvc asp.net-mvc-4

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

AutoMapper映射多个模型并忽略不存在的属性

我试图将多个域模型映射到一个视图模型.我发现这个链接能够做到这一点.但是,我有几个视图模型中不存在的域模型属性.当我尝试映射模型时,我收到错误:

缺少类型映射配置或不支持的映射.

这是因为我没有忽略其他属性.我看到的所有答案都在Mapper.CreateMap函数中使用了option.Ignore().但是,在我提供的链接中,不使用Mapper.CreateMap函数.对AutoMapper的唯一调用是:

    Mapper.Map(source, destination, sourceType, destinationType);
Run Code Online (Sandbox Code Playgroud)

在这种情况下如何忽略?或者有更好的方法来映射多个模型并忽略属性吗?

c# automapper

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

Razor中的函数和帮助程序有什么区别?

从我读过的教程中,函数总是包含C#代码.总是如此,或者我们可以在函数中使用Razor语法吗?另一方面,我们可以在帮助程序中使用C#代码吗?

c# asp.net asp.net-mvc razor

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

在实体框架中使用Join,Group By和Sum

我的模特看起来像:

public class ReturnItem
{
    public int returnItemId { get ; set; }
    public int returnRequestId { get; set; }
    public int quantity { get; set; }
    public string item { get; set; }
}

public class ReturnRequest
{
    public int returnRequestId { get; set; }
    public string orderNumber  { get; set; }
    public IEnumerable<ReturnItem> returnItems { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我有以下查询:

SELECT item, sum(quantity)
FROM ReturnItem
JOIN ReturnRequest
ON ReturnRequest.returnRequestId = ReturnItem.returnRequestId
WHERE ReturnRequest.orderNumber = '1XX'
GROUP BY item …
Run Code Online (Sandbox Code Playgroud)

c# sql entity-framework

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