提问人:paula.em.lafon 提问时间:11/5/2023 最后编辑:marc_spaula.em.lafon 更新时间:11/7/2023 访问量:66
我在 .NET Core 6.0 中有一个最小的 API,在存储库模式中使用 ADO.NET
I have a minimal API in .NET Core 6.0 using ADO.NET in a repository pattern
问:
我正在将最小 API 与调用 .NET Core 6.0 中的存储库的服务一起使用。我希望能够将连接字符串传递到我的存储库。
这是我的项目树:
这个想法是程序具有调用服务的端点,然后调用存储库。
我正在尝试从存储库中获取连接字符串。
在 中,我使用如下构建器:program.cs
var builder = WebApplication.CreateBuilder(args);
...
var app = builder.Build();
如下所示的方法:
app.MapPost("/create",
[Authorize(AuthenticationSchemes = JwtBearerDefaults.AuthenticationScheme, Roles =
"Administrator")]
(Movie movie, IMovieService service) => Create(movie, service))
.Accepts<Movie>("application/json")
.Produces<Movie>(statusCode: 200, contentType: "application/json");
这些函数使用的方法如下所示:
IResult Create(Movie movie, IMovieService service)
{
var result = service.Create(movie);
return Results.Ok(result);
}
然后,服务上有一些方法如下所示:
namespace MinimalJwt.Services
{
public class MovieService : IMovieService
{
private readonly MovieRepository movieRepository = new MovieRepository();
public Movie Create(Movie movie)
{
movie = movieRepository.CreateNewMovie(movie);
return movie;
}
}
}
最后,我尝试制作我的存储库的方式,现在看起来像这样
namespace MinimalJwt.Repositories
{
public class MovieRepository : IMovie
{
public IConfiguration _configuration;
public MovieRepository(IConfiguration config)
{
this._configuration = config;
}
public IList<Movie> GetMovies()
{
List<Movie> movies = new List<Movie>();
using (SqlConnection con = new SqlConnection(_configuration.GetConnectionString("MoviesContextDb")))
{
SqlCommand cmd = new SqlCommand("spGetAllMovies", con);
cmd.CommandType = CommandType.StoredProcedure;
con.Open();
SqlDataReader rdr = cmd.ExecuteReader();
while (rdr.Read())
{
var movie = new Movie()
{
Id = Convert.ToInt32(rdr["Id"]),
Title = rdr["Title"].ToString(),
Description = rdr["Description"].ToString(),
Rating = Convert.ToDouble(rdr["Rating"])
};
movies.Add(movie);
}
return (movies);
}
}
}
这个想法是让存储库能够使用 中的连接字符串。appsettings.json
任何帮助都非常感谢。
提前致谢。
答:
0赞
EMyAccount
11/7/2023
#1
appsettings.json 文件应如下所示。然后,您的代码应该可以工作了。
{
"ConnectionStrings": {
"MoviesContextDb": "Connection String details"
}
//.....other configurations.........
}
评论