【发布时间】:2020-08-25 09:49:08
【问题描述】:
我是 Razor 的新手。
在 appsettings.json 中的条目下方创建
"DefaultConnection": "Server=(LocalDb)\\MSSQLLocalDB;Database=TestDB;Trusted_Connection=True;MultipleActiveResultSets=True"
尝试在命令下运行
@{
var _db = Database.Open("DefaultConnection");
var selectQueryString = "SELECT * from Book";
}
给出以下错误。 InvalidOperationException:未找到连接字符串“DefaultConnection”。 var _db = Database.Open("DefaultConnection");
以下已包含在 index.cshtml 脚本中。
@using WebMatrix.Data;
@using System.Data.SqlClient
图书表确实存在于数据库中。
如果我遗漏了什么,请提出建议。
这是完整的代码
@page
@using WebMatrix.Data;
@using System.Data.SqlClient
@model BookListRazor.Pages.Databases.IndexModel
@{
ViewData["Title"] = "Index";
}
<h1>Index</h1>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title>Web Pages Demo</title>
</head>
<body>
<h1>Hello Web Pages</h1>
<p>The time is @DateTime.Now</p>
</body>
@{
var db1 = Database.Open("DefaultConnection");
var selectQueryString = "SELECT name,Database_id,Compatibility_level,collation_name FROM sys.databases ORDER BY Name";
}
<body>
<h1>Databases</h1>
<table>
<tr>
<th>name</th>
<th>Database_id</th>
<th>Compatibility_level</th>
<th>collation_name</th>
</tr>
@foreach (var row in db1.Query(selectQueryString))
{
<tr>
<td>@row.name</td>
<td>@row.Database_id</td>
<td>@row.Compatibility_level</td>
<td>@row.collation_name</td>
</tr>
}
</table>
</body>
</html>
【问题讨论】:
-
在本文中entity-framework-database-first-in-asp-net-core 告诉您将连接字符串放在哪里(在 appsettings.json 中相同)以及如何通过
IConfiguration.GetConnectionString获取。您可以通过类似或相同的行为来测试您的Database.Open方法。
标签: asp.net sql-server asp.net-core razor entity-framework-core