【发布时间】:2019-09-17 15:11:25
【问题描述】:
我想使用 .netCore 和 PostgreSQL 数据库创建一个非常简单的 API,这是我的应用设置
"ConnectionStrings": {
"DefaultConnection": "Server=192.xxx.xx.xx;Port=5433;Database=ltw_central_db;User Id=UserNAme;Password = myPass; Timeout = 15;"
}
但我收到一条错误消息,指出初始化字符串的格式不符合从索引 0 开始的规范 我用谷歌搜索了这个错误,我了解到这个错误表明我的连接字符串有问题,但似乎我的连接字符串很好,知道吗?
这是我想要 tp 查询的控制器,我得到错误:
private readonly TenMinutesContext _context;
public ValuesController(TenMinutesContext context)
{
_context = context;
}
// GET api/values
[HttpGet]
public ActionResult<IEnumerable<string>> Get()
{
var s = _context.stat10mins.Take(5).ToList();
return null;
}
我的 DbContext:
public TenMinutesContext(DbContextOptions<TenMinutesContext> options) : base(options)
{
}
public DbSet<TenMinutes> stat10mins { get; set; }
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
// modelBuilder.("wpv");
modelBuilder.Entity<TenMinutes>().ToTable("v_statistics_10_m", "wpv");
base.OnModelCreating(modelBuilder);
}
在应用设置中
public void ConfigureServices(IServiceCollection services)
{
services.Configure<CookiePolicyOptions>(options =>
{
// This lambda determines whether user consent for non-essential cookies is needed for a given request.
options.CheckConsentNeeded = context => true;
options.MinimumSameSitePolicy = SameSiteMode.None;
});
services.AddDbContext<TenMinutesContext>(opt =>
opt.UseNpgsql("TenMinutes"));
services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
var connection = @"Server=192.xxx.xx.xx;Port=5433;Database=ltw_central_db;User Id=UserNAme;Password = myPass; Timeout = 15;";
services.AddDbContext<TenMinutesContext>
(options => options.UseNpgsql(connection));
}
【问题讨论】:
-
使用这个连接字符串的代码是什么?
-
你是否在某个地方定义它应该使用 PostgreSQL,所以它不会尝试使用其他提供者?
-
@SamiKuhmonen 我通过添加 appsetting 更新了我的问题,我使用的是提供程序 Npgsql,我还从 nuget 为 .net 核心安装了 npgsql
-
services.AddDbContext<TenMinutesContext>(opt => opt.UseNpgsql("TenMinutes"));"TenMinutes" 确实是一个无效的连接字符串。