問題タブ [dbmetal]
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# - 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 に注意してください。これが問題です)。
sqlite - DBLinq >> DBMetal ツールを sqlite で使用するにはどうすればよいですか?
sqlite データベースからコード ファイルを生成するコマンド ライン ツール dbmetal のサンプルを提供してください。
database - DbMetal は、SQLite で繰り返される外部キー参照でチョークします - アイデアはありますか?
DbMetal で SQLite データベースを処理するのに苦労しています。私はついに問題を切り分けました。テーブルが同じ列への 2 つの外部キー参照を持つことは許可されません。
たとえば、次の 2 つのテーブルを含む SQLite データベースは失敗します。
次のエラーが表示されます。
DbMetal: シーケンスに一致する要素が複数含まれています
2 番目の外部キー参照を取り除けば、エラーは発生しません。
したがって、これは機能します:
しかし、Person テーブルを参照するには、両方の "person" 列が本当に必要です。
これについてバグレポートを提出しましたが、当面は回避策を使用できます。何か案は?
c# - DBMetal (SQLite): 複数の外部キーを持つ「シーケンスに複数の要素が含まれています」
(DbLinq の一部として) DbMetal を使用して C# ファイルを作成しようとすると、次のエラーが発生します。
DbMetal: シーケンスに複数の要素が含まれています
主キーの一部として複数の外部キーを参照する場合にのみ表示されます。以下は、問題を引き起こしているテーブルの DDL です。
SQLite データベースのセットアップに使用しているツールは SQLite Studio です。外部キーを設定するためにテーブル制約を設定しました。
外部キーをテーブル制約としてではなく (項目ごとに) 個別に設定すると、生成されたクラスは Question テーブルへの複数の参照を持ち、テーブルに挿入しようとすると複数の参照とエラーが発生します。
sqlite - DbMetalが「main」でテーブル属性を生成するのはなぜですか?
私はDBLinkとSqliteの初心者です。DbMetalがNortwind.cs(C#)を生成すると、いくつかのメソッドにTable属性のマークが付けられます。
DbMetalを使用してNortwind.vb(VB.Net)ファイルを作成した後、「main.Categories」という名前のテーブルがなかったため、テストプログラムが中止されました。ただし、「main。」を削除すると、次のように機能します。
なぜ「メイン」が生成されるのか、まったくわかりません。なぜC#では機能するのにVB.Netでは機能しないのですか?
.net - DbMetal で DataContext クラス名を設定するには?
DbLinq の DbMetal は、Main
を継承するクラスを生成しDataContext
ます。なりたくないMain
。それを変更する方法は?
vb.net - CodeConditionStatementおよびNullable.Equals
C#CodeConditionStatementを使用して次のVB.Netコードを作成する必要があります
私がすでに試したのは
ただし、System.Nullable
CodeExpressionで変換することはできません。
datacontractserializer - DbMetalによって生成されたクラスのインスタンスをシリアル化する方法は?
DbMetalは、ISerializable
インターフェースを実装せず、。でマークされていないクラスを生成することに気づきましたDataContractAttribute
。そのようなクラスをシリアル化する最も簡単な方法は何ですか?私を助けることができるDbMetalパラメータはありますか?
c# - ビルド前のイベントでクラス名を変更する
ビルド前のイベントでDbMetalを使用して、目的のコードファイルを生成します。DbMetalは、と呼ばれるクラスを生成しMain
ます。そのwikiで、そのデフォルト値を変更するためのパラメーターを見つけることができます。
ビルド前のイベント(上記のコードファイルを生成した後)で、クラス名を自動的にリファクタリングして変更したいと思います。
ビルド前のイベント内でこれを行うためのネイティブな方法はありますか?
そうでなければ、私はその仕事をする自分の小さなパーサーを書いて、そこでそれを呼び出すことを余儀なくされるでしょう。
(実際には、ビルド前/ビルド後のイベントがVS2005 / 2008でサポートされているかどうかはわかりません。この質問のタグを自由に追加してください。)
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 の呼び出し前に実際には正しい値に設定されます。