問題タブ [dblinq]
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.
c# - .NET 4.0 + Linq + SQLite + DbLink-すべてを連携させるにはどうすればよいですか?
SQLiteデータベースにデータを格納するC#でプロジェクトを開発しています(または開発しようとしています)。オブジェクトリレーショナルマッピングにLinqを使用したいと思います。私が読んだことによると、System.Data.SQLiteとdblinqをダウンロードすれば、SQLiteで使用することができます。
また、ほとんどの場合DBからデータを読み取るために機能しますが、何かを挿入しようとするとSQL構文エラーが発生します。Linqがそのようなクエリを実行しようとしていることをログにチェックインしました:
SQLiteではなく、MSServerのSQLクエリのようです。動揺する部分はこれSqlProvider(Sql2008)
です。dblinqが提供するものに置き換えるべきではありませんか?
私のデータベースクラスは次のようになります。
接続文字列は、dblinqwikiから取得されます。
なぜそれが機能しないのですか?.NET 4.0を使用しているからですか?誰かがそのような組み合わせをうまく使用したことがありますか?Linqプロバイダーを置き換える別の方法はありますか?
編集:テーブルマッピング:((foreachループを使用して)テーブルを読み取ることは機能しているように見えるので、エラーがここにあるとは思えませんが)
テーブル間のすべての関係は、テストのためにコメント化されました(役に立ちません)。次に、要素が次のコードで挿入されます。
mysql - 2 つ以上のテーブル linq から sql への結合
mysql db で linq-to-sql を使用して 2 つ以上のテーブルを結合するのに問題があります (2 つのテーブルで問題なく動作しました)。
これがコードです
これは私が得ているエラーです: オブジェクト参照がオブジェクトのインスタンスに設定されていません。"} System.Exception {System.NullReferenceException}
これは単純なクエリであると思われますが、機能させることができませんでした。何が問題なのか誰にも推測できますか?
ありがとう
c# - 関数に Linq 式を渡す
クラスのプロパティ リストを関数に渡したい。プロパティ リストに基づく関数で、クエリを生成します。Linq Select メソッドとまったく同じ機能です。ここでは、これを Ingress データベースに実装します。
例として、
フロントエンドで、このように選択を実行したいのですが、
私のエンティティクラスはこのようなものです
このような Select 関数を呼び出したいのですが、
次に、結果を使用して、Name プロパティと Address プロパティの値を取得できます。
私の Select 関数は次のようになるはずです。
(*これはLinq式を使用して行うべきだと思います。しかし、入力パラメーターと戻り値の型が何であるかわかりません。*)
これは、Linq のような機能を作成する試みです。しかし、私はLinq式の専門家ではありません。
MIT からDbLinqと呼ばれるプロジェクトがありますが、それは大きなプロジェクトであり、それでもそこから役立つものを得ることができませんでした。
誰かがこれを始めるのを手伝ってくれませんか、または誰かがこれについて読むのに役立つリソースをリンクしてくれませんか。
visual-studio-2010 - IronPython での DbLinq の使用
IronPython アプリケーションでdblinqを使用しようとしていますが、開始する際に問題が発生しています。clr.AddReference() を使用して dblinq クラスをインポートしようとすると、dblinq が表示されないようです。
ビルドはできますが、ライブラリにアクセスできません
1: 私の dblinq ソースは Resources というサブフォルダーにあります
clr.AddReferenceToFileAndPath("Resources/DbLinq.dll")
=> ファイルが見つかりません
clr.AddReference("DbLinq")
=> dblinq への参照を追加できませんでした
clr.AddReferenceToFileAndPath("C:/Development/DBLinq2/Dblinq.dll"
=>成功
しかし、それでもクラスを使用することはできませんfrom DbLinq import ...
解決
c# - DbLinq のオブジェクト追跡のパフォーマンスを改善できますか?
DbLinq 経由で MySQL データベースに接続する ASP.NET MVC2 サイトがあります。サイトで一定の間隔で実行される特定の一連のアクションがあります。これには、いくつかのテーブルの特定のレコード セットをループして更新し、他のテーブルにいくつかの新しいレコードを追加することが含まれます。
私は中程度のサイズのデータセットでテストしてきました。現在の私の特定のテスト セットでは、更新時に 44 の新しい行が挿入され、81 の他の行が更新されます。しかし、SubmitChanges() への私の呼び出しには非常に長い時間がかかります - ~3-4 分です。これは、比較的少数の変更を DB にプッシュするのに長い時間がかかるようです (私が思っていたこと)。
最終的に簡単なプロファイリングを行ったところ、データベースでクエリを実行したり、クエリを作成したりすることに問題があるようには見えないことがわかりました。ほとんどの時間は、UpdateEntity 内での AllTrackedEntities.ContainsReference() の呼び出しに費やされているようです。
実際の数値を示すために、最近のテスト実行から:
- SubmitChangesImpl の時間: 204884 ミリ秒
- UpdateEntity の時間: 200908 ミリ秒
- ContainsReference の時間: 148173 ミリ秒
- QueryBuilder.GetUpdateQuery の時間: 685 ミリ秒
- QueryRunner.Update の時間: 28 ミリ秒
- UpdateReferencedObjects の時間: 49958 ミリ秒
- UpdateEntity の時間: 200908 ミリ秒
ご覧のとおり、SQL クエリの作成と実行は、更新しているエンティティへの参照が存在するかどうかを確認するのに費やされた時間に比べれば小さくなります (参照がない場合、エンティティは挿入されますが、この場合はすべての更新されたエンティティが存在します)。なぜこれが発生するのかは理解していますが、データの整合性を維持するためなどに、これらの定期的な更新操作のパフォーマンスが低下しています。
私は ObjectTrackingEnabled を false に設定することを検討しましたが、それにより DataContext が読み取り専用になり、それは私には役に立ちません - 私の問題は特に更新時のパフォーマンスにあります。
更新のパフォーマンスを向上させるためにできることはありますか? 1 回の送信で 40 ~ 50 の挿入と 80 以上の更新をプッシュしようとするという点で、最適とは言えない方法で DbLinq を使用していますか? もしそうなら、これについてもっと良い方法はありますか?
postgresql - DbLinq "char" 特殊文字
DbMetal ツールを使用して、データベースのクラスを生成しました。うまくいきましたが、データベースにいくつかの「char」タイプを追加しました。クラスを生成しようとすると、エラーが発生します
誰かがこれに遭遇しましたか?回避策または代替手段はありますか?
前もって感謝します!
c# - Nullable 型間で Equal が定義されていないおよび Int32
患者とその診療歴を管理するための退屈なアプリケーションを作成しています。DbLinq ライブラリと DbMetal コード生成ユーティリティを組み合わせた SQLite を使用しました。以下は、基礎となるデータベースから抽出された、生成されたコードからの 2 つのクラスです。
次のコードを使用して、患者に住所を追加します。
Database.Source は、生成されたコードで DataContext を拡張するクラスのインスタンスです。SubmitChanges で、次の例外を受け取ります。
「Nullable(Of Int32) と Int32 の間に等号演算子が定義されていません。」
メッセージは一字一句報告されませんが、意味は同じです。スタック トレースは、DbLinq コード、より正確にはソース ファイル DbLinq.Data.Linq.DataContext.cs の 709 行を指しています。ソース ファイルはhttp://dblinq.codeplex.com/SourceControl/changeset/view/16800#314775 (メソッド SetEntityRefQueries(object entity) の本体の下) にあります。外部キーの値を式ツリーの定数と比較するときに問題が発生することがわかりましたが、それに関する他の情報を取得できませんでした。問題を見つけるのを手伝ってもらえますか?
注: フィールド address.PatientID (外部キー) は、SubmitChanges の呼び出し前に実際には正しい値に設定されます。
c# - DbLinqで子エンティティを削除することはできません
この質問は私の前の質問に関連しています。ここで報告されている例外を除いて、ほとんどすべてのコードをそこに見つけることができます。null許容フィールドをintフィールドに置き換え、生成されたコードがnullを置く場所に-1を入れました。このようにして、DbLinqコードによって発生する厄介な例外を解決することができました。しかし、今は子エンティティを削除できません!特に、いくつかの住所が関連付けられている患者がいます。テーブルPatientAddressesは、すべてのアドレスをトリプレット(PatientID、Address、DomicileStatus)で保持し、最初の2つのメンバーがテーブルの主キーを構成します。私は問題を指摘するためにテストを書きました:
示された行でテストが失敗します。簡単に言うと、アドレスを削除してもデータベースに残ります。対応するPatientAddress行を削除しようとしましたが、役に立ちませんでした。3つまたは4つのバリアントを試しましたが、患者から住所を削除できません。これらのテーブルを生成するために使用されるコードは次のとおりです。
私はこの振る舞いを回避する方法を見つけることができず、グーグルは助けにはなりません。
sqlite - Windowsストアアプリでdblinqを使用してSQLiteにアクセスすると、ストアの検証に合格しますか?
私は、WindowsストアアプリでORMデータベースアクセス用に機能するものに適切なLINQを取得する方法を見つけようとしてきました。私が見つけたのはSQLiteとsqlite-netNuGetパッケージだけです。関係を解決し、クエリを簡単に実行するためのナビゲーションプロパティを提供する.dbmlのような構造がないため、後者は少し面倒です(手動で結合する必要はありません)。
私は考えていた:
- SQLiteと組み合わせたdblinqはこれを提供しますか?
- これを使用すると、Windowsストアの検証に合格しますか?
ありがとうございました !
更新:私が研究で使用したいくつかのリンク:
- SQLiteとWindows8に関する有名なTimHeuerの投稿:http://timheuer.com/blog/archive/2012/08/07/updated-how-to-using-sqlite-from-windows-store-apps.aspx
- DBlinq:http ://code.google.com/p/dblinq2007/
- sqlite-net:http ://code.google.com/p/sqlite-net/
- ADO.NETを示す興味深い議論は不可能です:http ://social.msdn.microsoft.com/Forums/en-US/winappswithcsharp/thread/e9cdd75d-03e4-4577-988e-4c02a52e3f50
sqlite - DbLinq DbMetal - 外部キーの追加時に「指定されたキーが辞書に存在しませんでした」
これは私の最初の SQLite データベースです
を実行するDbMetal /provider:Sqlite /conn "Data Source=bms4.db3" /dbml:Model.dbml
と、dbml ファイルが正常に作成されます。
しかし、外部キーを追加すると、
同じコマンドを実行する
このエラーが発生します:
外部キー関係を DBML に導入するにはどうすればよいですか?