問題タブ [ef-postgresql]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
entity-framework - Postgresql を使用した単純なクエリに対する Entity Framework のパフォーマンスの低下
私の新しいプロジェクトでは、Postgresql で .NET Entity Framework を使用したいと考えています。そこで、まず単純な SQL クエリで Entity Framework のパフォーマンスを比較しました。このために、サンプルのデスクトップ アプリケーションを開発し、両方のモードで実行しました。マルチスレッド環境で、Entity Framework と単純な SQL クエリを使用します。Entity Framework のパフォーマンスは、SQL 呼び出しのパフォーマンスよりも 50% 低いことがわかりました。どちらの場合も NPGSQL を使用しています。
パフォーマンスはアプリケーションにとって重要な成功要因であり、毎秒約 250 ~ 300 のリクエストを処理しています。
Entity Framework を使用する必要があるかどうかを提案してください。または、EF のパフォーマンスを向上させて単純な SQL 呼び出しをインライン化するためのヒントやコツはありますか。.NET Framework 4.5 を使用しています。
c# - npgsql を使用した Entity Framework は money データ型を受け入れません
Entity Framework 5 と PostgreSQL DB を使用して .NET C# アプリを作成しています。私はnpgsql 2.0.12 をデータ プロバイダーおよびデータベース ファーストのアプローチとして使用しています。
まず、モデル ファイル (csdl、ssdl、mdl) と、postgresql データベースへの接続文字列をパラメーターとしてedmgenを使用してオブジェクト レイヤーを作成しました。
edmgen は、ジョブを実行するときに警告を表示します。
警告 6005: データ型 'money' はサポートされていません。テーブル 'tablename' の列 'amount' は除外されました。
その後、すべて正常に動作しますが、その列がモデルに含まれていないだけです。もちろん、私はこのコラムが必要なので、それでは満足できません。DB 構造を変更しないでください。
だから、私がしたことは、モデルファイルを手動で変更したことです-それぞれCSDL、SSDL、MDL:
また、この表の他の属性と同様に、この属性を追加して ObjectLayer を編集しました。
アプリを実行すると、次のようになります。
指定されたスキーマは無効です。エラー: タイプ money は名前空間またはエイリアスで修飾されていません。修飾なしで使用できるのはプリミティブ型のみです。
それは誰のせいですか?EF? npgsql? edmgen?
pgfoundry.org/forumで何かを見つけましたが、数値に変更しても役に立ちません。 npgsql のユーザー マニュアルには、money がサポートされている型であることが示されています。
これをお金型の列で機能させるにはどうすればよいですか?
c# - 1 台のマシンのみでの Linq、NpqSql、および Entity Framework の問題
.net 4.0 で実行されている Entity Framework を使用して postgresql Web アプリケーションを正常に実行している環境があります。
どういうわけか、私のマシンでのみ、単一の Linq クエリが失敗し、他のマシンでは成功します。以下は linq クエリで、そのコンテキストは特に問題ではありません。ポイントは、私のマシンではなく、他のマシンで動作することです。さらに、私のマシンは挿入などを正常に実行できますが、この特定の実行はできません。
同僚のマシンでは、同じサーバー構成で実行されている新しいチェックアウトにより、成功した結果が得られます。
ただし、私の場合、次の例外があります。
System.Exception {System.Data.EntityCommandExecutionException}
InnerException:
{"エラー: 42601: \"LEFT\"" 付近での構文エラー"} System.Exception {Npgsql.NpgsqlException}
表示されるデバッグウィンドウのerrorSQLエントリを見ると、「select .... limit 2 left join...」という無効な巨大なSQLが作成されており、エラーが発生しています。
問題は、これが自分のマシンでのみ発生し、コンパイルされたコードが他のマシンにデプロイされたり、同僚が作業している同じコードが実行されたりするのはなぜですか? 最近 64 ビット アプリ プールにアップグレードしましたが、DLL はそれと共に展開され、出力からは正しいものです。
明らかに、マシンに何かが欠けていますが、それは私たちのソースにはありません。そのため、問題を引き起こした iis 構成または gac 内の何かのいずれかです。
編集:
確認したにもかかわらず、Visual Studio の開発者プレビュー インストールを行ったときに 4.5 をインストールしていました。4.5 は 4.0 からのインプレース アップグレードであるため、4.5 であるにもかかわらず、「ターゲット 4.0」と記載されているものをすべて見逃していました。どうやら Microsoft は Entity Framework の 4.5 で多数のバグを修正した (またはさらに多くのバグを作成した) ようで、これもその 1 つです。他の人も同様の問題を抱えていたので、4.0 のバグなのか、4.5 で導入されたバグなのかはわかりません。
以下は、何らかの形で持っている可能性のある人のために上記を修正しました
c# - 最初に DotConnect For PostgreSQL とエンティティ フレームワーク コードを使用する方法
プロジェクトで POstgreSQL データベースを使用しようとしています。コード ファースト開発を学びたい.. PostgreSql の dotconnect (試用版) をダウンロードし、参照に Devart.Data.PostgreSql dll を追加しました。次に、これらの行を app.copnfig に追加しました
アプリケーションを実行すると、次の例外があります。
データベースからプロバイダー情報を取得中にエラーが発生しました。これは、不適切な接続文字列を使用する Entity Framework が原因である可能性があります。内部例外で詳細を確認し、接続文字列が正しいことを確認してください。
entity-framework - 「データベース」は、「System.Data.Entity.Database」間のあいまいな参照です
データベース優先の MVC アプリケーションがあります。データベースは、dotconnect データ プロバイダーを使用した postgres です。プロジェクトは問題なく正常に動作します。ただし、同じサーバーで別のデータベースを選択すると、InitializeSimpleMembershipAttribute.cs クラスから次のエラーが発生します。
私が追跡できる唯一の違いは、新しいデータベースが「dbwrench」というプログラムから生成されることです。このエラーの意味を説明できる人はいますか?