0

私はlinqをpostgresqlに使用するプロジェクトを持っています.私はライブラリとその3つの依存関係を持っています.

しかし、DB に接続しようとすると、次のエラーが発生します。

System.NullReferenceExceptionでのタイプ「 」の例外の最初の可能性linq2db.dll。追加情報:Object reference not set to an instance of an object. (Translated).

スタックトレース:

LinqToDB.Data.DataConnection..ctor(String configurationString) in i:\linq2db\Source\Data\DataConnection.cs:line 41 in LinqToDB.Data.DataConnection..ctor() in i:\linq2db\Source\Data\ DataConnection.cs:d:\Proyectos\Proyectos VisualStudio\TimeSheets\TimeSheets\modelo\BDGestion.PostgreSQL.generated.cs:línea 44 の modelo.BDGestion.bdgestionDB..ctor() の 24 行目 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());
            }
        }
    }

テンプレートを使用してクラスを生成しました。接続文字列は整形式で、接続文字列に適切に追加されています。このソリューションで私が確認し、他のコンピューターの友人が独自に確認しました。情報が必要な場合は、お尋ねください。

生成されたクラス:

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 が null のように見えます。さらにグーグルで検索すると、このページが見つかりました。接続文字列にプロバイダー名がないようです:

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

ここでは、Linq2db を使用して PostgreSQL データベースに接続する例を見つけることができます。

于 2015-04-21T07:04:11.307 に答える