我创建了一个 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/