0

我有使用 linq 到 postgresql 的项目,我有库及其三个依赖项。

但是当我尝试连接到 de DB 时,我收到了这个错误:

System.NullReferenceException' '类型异常的第一次机会linq2db.dll。附加信息:Object reference not set to an instance of an object. (Translated).

堆栈跟踪:

在 LinqToDB.Data.DataConnection..ctor(String configurationString) 在 i:\linq2db\Source\Data\DataConnection.cs:line 41 in LinqToDB.Data.DataConnection..ctor() in i:\linq2db\Source\Data\ DataConnection.cs:第 24 行 modelo.BDGestion.bdgestionDB..ctor() 在 d:\Proyectos\Proyectos VisualStudio\TimeSheets\TimeSheets\modelo\BDGestion.PostgreSQL.generated.cs:linea 44 en TimeSheets.SeleccionPersonal..ctor( ) 在 d:\Proyectos\Proyectos VisualStudio\TimeSheets\TimeSheets\SeleccionPersonal.cs:第 23 行

public partial class SeleccionPersonal : Form
    {
        public SeleccionPersonal()
        {
            InitializeComponent();
            try
            {
                using (var db = new bdgestionDB())
                {

                }
            }catch(Exception ex){
                MessageBox.Show(ex.ToString());
            }
        }
    }

我使用模板生成了类,连接字符串格式正确并正确添加到 de connectionStrings。我在这个解决方案中检查了它,并由其他计算机上的朋友自己检查了它。如果您需要任何信息,请询问。

生成的类:

public partial class bdgestionDB : LinqToDB.Data.DataConnection
{
    tables...

    public bdgestionDB()
    {
        InitDataContext();
    }

    public bdgestionDB(string configuration)
        : base(configuration)
    {
        InitDataContext();
    }

    partial void InitDataContext();
}

App.config:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <startup>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
  </startup>
  <connectionStrings>
    <add name="Postgres" connectionString="Server=thot-test;Port=5432;Database=bdgestion;UserId=test;Password=T15Pmc;Pooling=true;MinPoolSize=10;MaxPoolSize=100;Protocol=3;"/>
  </connectionStrings>
</configuration>
4

1 回答 1

1

我用谷歌搜索了源代码并被指出了这个文件的方向。

查看第 41 行,它尝试从 DataProvider 访问 MappingSchema。从这里看起来 DataProvider 是空的。谷歌搜索更多我发现了这个页面。看起来您的连接字符串中缺少提供者名称:

<add name="Northwind" 
connectionString = "Server=.\;Database=Northwind;Trusted_Connection=True;Enlist=False;" 
providerName     = "PostgreSQL" />

在这里您可以找到使用 Linq2db 连接到 PostgreSQL 数据库的示例。

于 2015-04-21T07:04:11.307 回答