gpt4 book ai didi

c# - 如何为使用代码优先的应用程序的 SQL View 创建 Controller ?

转载 作者:行者123 更新时间:2023-11-30 21:51:19 27 4
gpt4 key购买 nike

我创建了一个 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# - 如何为使用代码优先的应用程序的 SQL View 创建 Controller ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35766522/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com