問題タブ [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.
sqlite - SQLiteのwhere句でブールフィールドを使用するにはどうすればよいですか?
ばかげた質問のようですが、それでも。私を騙しているのは私のIDEかもしれません。コードは次のとおりです(これはDbLinqから生成されます):
このクエリを実行すると、ActiveとPublicという2つのブールフィールドを持つ3つの行が返されます。コメント化された行を追加しても、行は返されません。行を次のいずれかに変更します。
動作しません。エラーまたは結果なし。私はこれをグーグルで検索し、実際のSQLクエリが不足していることを発見しました。そして、ここにいます。
だから:SQLiteのwhere句でブールフィールドを使用するにはどうすればよいですか?
IDEはSQLite管理者です。
更新:まあ、私は答えを見つけました。SQLite Administratorを使用すると、明らかに独自のタイプを作成できます。生成されるSQLの作成は次のようになります。
クエリの修正は次のとおりです。
ここでの本当の問題は、最初の回答者が指摘したように、SQLiteにはブール型がないことです。問題ではありませんが、注意すべき点があります。DbLinqを使用してデータレイヤーを生成しています。多分それはSQLiteがサポートしていないタイプのマッピングを許可するべきではありません。または、SQLiteにネイティブではないすべての型を文字列型にマップする必要があります。
linq-to-sql - DBLinq が where 句を生成しない
MySQL と Postgresql を使用して、SVN トランクから DBLinq-0.18 と DBLinq をテストしています。私は非常に単純なクエリのみを使用していますが、両方のデータベースで DBLinq が Where 句を生成していません。Postgresql でステートメント ログをオンにして、DBLinq が送信している要求を正確に確認することで、これを確認しました。
私のLinqクエリは次のとおりです。
クエリは問題なく動作しますが、DBLinq によって生成される SQL は次の形式です。
Linq クエリを実行する前に DBLinq がテーブル全体を取得する必要があることを意味する Where 句はありません。
DBLinq の経験があり、私が間違っている可能性があることを知っている人はいますか?
c# - DbLinq の問題 (キーワード New または MemberInit が例外をスローする)
巨大な Web アプリケーションを SQL Server から MySql に移行しています。アプリケーションはLinqを使用しているため、DBLinqを使用しています。現在、いくつかのページで奇妙なエラーが発生することを除いて、ほとんどのことが正常に機能しています。それはすべてこれから始まりました:
私は明らかに CPost クラスに ForumID を持っているので、それは問題ではありません。クエリを別のファイルにコピーしようとし、その一部を削除してエラーの原因を確認しました。しばらくして、次の行がわかりました:
例外が発生しました:
行で:
しかし、このコード:
完璧に走りました。
必要に応じてさらに情報を提供できますが、ソース コード全体を投稿することはできません。ソース コードは非常に大きいためです(html を含めずに 10,000 行以上)。誰かがこれらに似た問題を抱えていましたか?
編集:さらに調査した後、クエリからキーワード New または MemberInit が見つからないため、DbLinq が不平を言うことがわかりました
次の場合に機能します。
と
例外をスローします。例外は、trunk/src/DbLinq/Vendor/Implementation/SqlProvider.cs の 285行目で発生します。
c# - DbLinq - キャッシュの問題
ASP.NET MVC Web サイトで (DbLinq を使用して) MySql の linq to sql を使用しています。奇妙なキャッシングの問題があります。私の Repository クラスで次のメソッドを検討してください。
「MyDataContext」は、DbLinq によって生成されたデータベースへのマッピングであり、DataContext から継承されます。ここではデータコンテキストを再利用していません (上記のコードは少しばかげているように見えますが、データコンテキストや mysqlconnection の再利用の問題ではないことを確認したかったのです)。
2 つのメソッドのどちらを呼び出しても、userId が何であれ、結果は同じままです。限目。さまざまなと の値repo.Messages
を使用して 10 を超える結果があることがわかりますが、最初にクエリを実行した結果しか返されません。したがって、呼び出すと、メッセージ A とメッセージ B が返されます。後で呼び出すと、userId が 526 のメッセージ C と Dがあるにもかかわらず、メッセージ A と B が返されます。変更を確認するには、アプリケーションを再起動する必要があります。MessageFrom
MessageTo
GetInbox(4374)
GetInbox(526)
何が起きてる?きっと誰かに指摘されたら恥ずかしくなるようなバカなことをしているに違いない。私が非常にばかげたことをしていない場合、この問題は非常に奇妙だと思います。DataContext を再利用しないことについて読みましたが、そうではありません。このキャッシュの問題はなぜですか? 以下は私のコントローラコードですが、それが問題になるとは思えません:
SO にも同様の質問がありますが、この正確な質問に対する答えは見つかりませんでした。どうもありがとう!
更新: コードを次のように変更します:return repo.Messages.ToList().Where(m => m.MessageFrom == userId);
修正すると、問題なく動作します。キャッシュの問題のようです。ただし、もちろん、そのように修正したくはありません。クエリの後にデータ コンテキストが破棄されないようにコードを変更しても、問題は解決されません。
c# - .NET/C# Drizzle データベース クライアント
次の C# MonoアプリでDrizzleを使用する予定です。Drizzle で使用できる C# クライアントは存在しないため、Java クライアントを変換してDBLinqで動作させることで、独自のクライアントを作成してみようと思いました。
Java クライアントを見てみると、予想していたよりも時間がかかり、時間がないことがわかりました。さらに、Java クライアントはまだそれほど成熟していません。
公式の Drizzle C クライアント ライブラリ ( libdrizzle ) があるため、C# ラッパーを作成することが最善の解決策である可能性があります。このコードの生成に役立つツールはありますか?
c# - sqlite_sequence に対して無効なクラスを生成する DBMetal
DBLinq と DBMetal.exe を使用して、Linq-to-SQL のようなクラスを SQLite データベースから生成しています。DBMetal を使用して DataContext を再生成するたびに、sqlite_sequence のクラスが生成されます。問題は、sqlite_sequence が適切なテーブルではないため、クラスが完成していないことです。
問題は、DBMetal.exe がこのクラスをより適切に生成できるか、またはそのクラスを無視するように DBMetal に指示できるかということです。
ありがとう!
これが私のDBMetal.exe呼び出しです
sqlite_sequence (システム テーブル) に対して実際に生成された SQL は次のとおりです。
生成される壊れたクラスは次のとおりです (データ型を持たないプロパティ、name、seq に注意してください。これが問題です)。
mono - DbLinqとMono2.4:一緒に作業しますか?
うまくいけば、これはばかげた質問であり、どこかに本当に簡単な解決策がありますが...
Mac OS X10.5のMono2.4でDbLinqをうまくプレイできる人はいますか?
SQLiteデータベースの準備ができましたが、私の人生の間、オブジェクトを生成するためのsqlmetalが見つかりません。
sqlmetalを含む以前のバージョンのMonoをダウンロードし、ビルドしてインストールし、Mono 2.4でそのバージョンから生成されたコードを使用する必要があるかもしれないと推測しています...しかし、絶対に避けたいと思っています。
c# - DbLinq を介して Linq to SQLite でレコードを作成する
私は (かなりの労力を費やした後) DbLinq を OS X 上の Mono の最新ビルドで動作させました。
DbLinq/Sqlite を介してデータベース エンティティを正常に作成した人はいますか?
たとえば、次の表があります。
*.cs ファイルを生成し、次のコードを使用して新しい UserType エントリを作成しようとしています。
SubmitChanges への呼び出しは、特に @ に関連する無効な構文に関する例外をスローしています (挿入を行うためにパラメーター化されたクエリで推測しています)。生成されているコードは SQL Server 固有のようです。不足している修正またはフラグはありますか、または DbLinq を介した SQLite へのレコードの挿入はサポートされていませんか?
c# - MySQL DATETIME を System.DateTime に変換する
DbLinqでMySQL データベースを使用していますが、例外がスローされます。
「mysql 日時を system.datetime に変換できません」
この問題を解決するにはどうすればよいですか?
sqlite - SqlMetal が Sqlite データベースからの DBML の作成に失敗する
新しい Mono 2.6 SqlMetal ツールを使用して、単純な Sqlite データベース用の DBML ファイルを作成しようとしています。スキーマは次のように非常に単純です。
以下を使用して DBML ファイルを作成しようとしています。
次の出力が得られます。
/code オプションを使用して C# コード ファイルを作成できますが、DBML の生成時に常に失敗します。
微妙なコマンドライン オプションが不足していますか、それとも SqlMetal のこの新しいビルドは Sqlite で機能しませんか?