npgsql-停止使用'template1'数据库

Sho*_*ter 0 entity-framework npgsql entity-framework-6

我想将大象数据库与实体框架(无论哪个版本)一起使用。我在网上找到了有关npgsql的教程,可以帮助我连接这两项技术。

我做了一个对象,它将表示来自DB的对象:

[Table("typychorob", Schema = "public")]
public class TypChoroby
{
    public TypChoroby()
    {
    }

    [Key, Column("id"), DatabaseGenerated(DatabaseGeneratedOption.Identity), Required]
    public int ID { get; set; }

    [Column("nazwa"), MaxLength(50)]
    public string Nazwa { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我创建了代表dBContext的类。Uzytkownik与TypChoroby几乎相同。

public class PrzychodniaContext : DbContext
{
    public DbSet<Uzytkownik> Uzytkownicy { get; set; }
    public DbSet<TypChoroby> TypyChorob { get; set; }

    public PrzychodniaContext() : base()
    {
    }
}
Run Code Online (Sandbox Code Playgroud)

我尝试以以下方式使用这些东西:

using (var context = new PrzychodniaContext())
        {
            context.Database.Log = post;
            var chorobska = context.TypyChorob.ToList();
        }
Run Code Online (Sandbox Code Playgroud)

这总是会产生这样的错误:

{"28000: no pg_hba.conf entry for host \"178.37.126.100\", user \"jnwnqqog\", database \"template1\", SSL off"}
Run Code Online (Sandbox Code Playgroud)

这是ElephantSql最简单的计划,因此我无法编辑pg_hba.conf,这是我可以给自己一些特权的文件。

我的ConnectionString:

<add name="PrzychodniaContext" connectionString="Server=YouDontWantToKnowButYouKnow;Database=jnwnqqog;User Id=jnwnqqog;Password=YouDontWantToKnow;MAXPOOLSIZE=5;" providerName="Npgsql" />
Run Code Online (Sandbox Code Playgroud)

我尝试了什么?

1)首先我知道发生了什么。在创建数据库命令中的npgsql文档中,我发现:

template
The name of the template from which to create the new database, or DEFAULT to use the default template (template1).
Run Code Online (Sandbox Code Playgroud)

Honetsly我不知道该如何更改。我尽管将其更改为“ jnwnqqog”会很好,因为这是我在ElephantSQL的数据库。但是我不知道。

2)我用过Database.SetInitializer(null); 我以为它将停止尝试创建新的数据库。它并没有阻止这种行为。

3)我尝试启用/禁用SSL。

4)我将实体框架与npgsql一起从5.0更改为6.0。

所有人都好奇:-为什么在Visual Studio中使用Elephantsql和Postgresql?-大学项目。老实说,我想使用mssql,但我不能。仅progresql。

编辑:我试图阅读许多问题/教程/错误跟踪器的故事/等。找不到我的答案。Edit2:对不起,我忘了。ElephantSQL是托管在云中的Postgresql数据库。

Sho*_*ter 6

我做到了 :)。

如果有人遇到与我相同的问题,则需要将其添加到您的连接字符串中:

EntityAdminDatabase=[DATABASE_NAME]
Run Code Online (Sandbox Code Playgroud)

然后它将停止使用“ template1”。