c# - 如何为使用 Code First 的应用程序的 SQL View 创建 Controller ?

标签 c# asp.net-mvc azure-mobile-services

我创建了一个 SQL View 以在我的应用程序的移动后端中使用。可能是因为术语“View”和“MVC”,我很难寻找可能的解决方案,因为我不断获得 MVC View 而不是 SQL View 的链接。

有人知道如何创建引用 SQL View 的 Controller 吗?

最佳答案

您无法创建一个 Controller 来为您处理此问题,但我可以提供一个示例来让您了解创建 MVC View 并检索相关数据的含义。

假设您的 SQL Server View 如下例所示:

CREATE VIEW StackUserScores AS 
  SELECT u.Username, s.Score
  FROM Users u INNER JOIN UserScores s ON s.UserId = u.Id

创建可以显示所有数据的对象 View 后:

public class StackUserScores {
   public string Username { get; set; }
   public int Score { get; set; }
}

现在您可以在 asp.net MVC 项目中创建一个名为 UsersController 的新 Controller 。该控件将包含与用户相关的所有操作:

public class UsersController : Controller {
  public ActionResult Scores() {
    var connectionString = "your db connection";
    var connection = new SqlConnection(connectionString);
    connection.Open();

    var command = connection.CreateCommand();
    command.CommandType = CommandType.Text;
    command.CommandText = "SELECT * FROM StackUserScores";
    var reader = command.ExecuteReader();
    var scores = new List<StackUserScores>();
    while( reader.Read()) {
      scores.Add(new StackUserScore {
        Username = reader.GetString(0),
        Password = reader.GetInt(1)
      });
    }
    return View(scores);
  }
}

您的 View (位于 ~/Views/Users/Scores.cshtml 中)将如下所示:

@model List<StackUserScore>

<table>
  <thead>
    <tr><th>Username</th>
        <th>Score</th>
    </tr>
  </thead>
  <tbody>
  @foreach(var userScore in Model) {
    <tr><td>@userScore.Username</td>
        <td>@userScore.Score</td>
    </tr>
  }
  </tbody>
</table>

请记住:这是解决此问题的无数方法之一。您可以使用 Entity Framework 或其他东西,在本示例中,我为您提供了一个使用自定义类 (StackUserScore) 和自定义数据检索(使用 SqlCommand)的演示。

希望这可以帮助您理解。

关于c# - 如何为使用 Code First 的应用程序的 SQL View 创建 Controller ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35766522/

相关文章:

c# - 验证站点/应用程序以访问 Web API 服务

linux - 针对 Linux 数据库的 Azure 移动应用程序

node.js - 在服务器端解密或验证 Azure 移动服务 token 上的签名

c# - MVC 应用程序中的文件下载

c# - C# 28 次内联限制是否有解决方法?

asp.net-mvc - 从 ASP.NET MVC Controller 重定向到外部 URI

c# - ASP.Net Controller Action 仅在任务完成后返回

c# - 你如何用 Rhino Mocks stub IQueryable<T>.Where(Func<T, bool>)?

c# - 在ASP中显示实时图的有效方法

azure - 添加新的依赖项