問題タブ [ormlite-servicestack]
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.
ormlite-servicestack - DB のデフォルト値があり、値が指定されていない ormlite 列が INSERT ステートメントに表示されない
挿入時に DB 定義のデフォルトを持つ列を無視するように ormlite を取得するために使用できる設定はありますか?その列に値を指定していませんか?
ormlite-servicestack - ServiceStack.OrmLite を使用して既存の SQL Server スキーマからエンティティを自動生成する方法の例を探しています
ServiceStack.OrmLite Lite にはthisがあることがわかります。
この ServiceStack の発言には、何かが通用しない気がします。
Code-Gen DTO の変更に伴う問題により、コードが破損し、DRY 強制による抽象化が阻害され、複数のバージョンが並行して実装されます。
マイクロormの代わりにSSで完全なORMを使用すると、まさにこれが行われることを意味しているように思えますか、それとも私はここから離れていますか? エンティティは自動生成しますが、dto は手作業でコーディングしているため、よくわかりません。
servicestack - 自動ガイド ID
Guid Id を使用して poco オブジェクトをセットアップすると、少なくとも期待どおりに保存されているように見えます...しかし、手動で行わない限り、Id の新しい Guid を作成することはありません。db.CreateDatabase() が id フィールドを ID 仕様 (mssql サーバー) として設定するか、単に Guid.NewGuid() で自動入力するように設定するトリックはありますか?
sqlite - SQLiteを使用するときにServiceStack.OrmLiteに外部キーを適用させるにはどうすればよいですか?
この他のSOの回答によると、SQLiteは外部キーの関係を自動的に強制しないようであり、これは接続ごとに明示的に有効にする必要があります。そして、これはServiceStack.OrmLiteで報告された問題です。ServiceStack.OrmLite3.9.33とSQLite1.0.84を使用して、この動作を自分で再現しました。単体テストは成功しますが(外部キー参照を使用してレコードを削除できます)、実際のアプリケーションは(合法的に)失敗します。
不明な点は、必要な「PRAGMAforeign_keys=ON;」をどこでどのように実行するかです。SQLコマンド。これにより、SQLiteユニット/統合テストのすべての接続に適用されますが、プライマリSQLServer接続には適用されません。理想的にはIDbConnectionFactory登録の一部であるように思われます。
誰か助けてもらえますか?
編集:カスケード削除はこの状況を処理する別の方法ですが、ForeignKey属性を使用してFK列にこれを正しく設定しているにもかかわらず、SQLite(ここに記載)で使用した場合、後者のサポートにもかかわらず、ServiceStack.OrmLiteはこれを尊重しないようですそれのための。これは元の問題に関連している可能性があり、SQLiteのFK強制はデフォルトで無効になっており、最初に有効にすると正しく機能します。
c# - ServiceStack ORMLite の ID 列を使用して多対多のテーブルに挿入するための最良のアプローチ
昨日、この素晴らしい ORM を見つけたので、github で提供されているサンプルよりも複雑なものについてテストを実行したいと思います。
これは私が使用しているモデルです
そして、これは私が達成しようとしているものです (ただし、artistgenre テーブルに挿入するときに Identity 値が不明であるため、機能しません)。
各行を追加してその Identity 値を取得する以外に簡単な解決策はありますか?
ありがとう。
c# - OrmLiteでnullでないvarcharを固定サイズにする方法は?
Poco クラスでプロパティを宣言するString
と、OrmLite はvarchar(8000) NULL
データベースにそのプロパティの列を生成します。たとえば、次のクラスとそのために生成されたテーブルがあります。
フィールドの長さを指定するにはどうすればよいでしょうか。たとえば、FirstName に 8000 文字を使用するのは意味がありません。また、どうすれば強制できNOT NULL
ますか? および列には常に値が必要ですUserName
。Password
c# - ServiceStackORMLiteとDapperの連携の問題
ServiceStackORMLiteで実験を行うのはこれで3日目です。以前はDapperでのみ機能していた私のサンプルプロジェクトは、現在はDapperとServiceStack ORMLiteの両方を組み合わせており、両方の長所を活用しています。
昨夜、私はDapperクエリで苦労していました。これは基本的に、ORMLiteのコードが入る前に正常に実行されていた4つのテーブルを結合する選択です。現在、オブジェクトに対するテーブルマッピングのために何度もフェイルオーバーしています。壊れることはなく、オブジェクトに間違った値を割り当てるだけです。
一時的な回避策として、DapperのQueryMultipleを使用してSQL結合なしで4つの選択のそれぞれを実行し、その後、C#で結果を1つずつ結合するように進めなければなりませんでした。
笑い始めないでください。もちろん、これが最善の解決策ではないことを私は知っています。それでも、DBに1回アクセスすることはできますが、自然な感じではありません。行数が増えると、パフォーマンスの問題になる可能性があります。
今朝、問題の原因を見つけたと思います。ORMLiteを使用してテーブルを削除して作成しているところ、フィールドの順序が期待どおりではないことに気付きました。ORMLiteコードの前は、SQLスクリプトを手動で実行しただけなので、フィールドの順序を決定しました。私のプロジェクトは、最終ユーザーが望むようにMySql、Postgresql、およびSQL Serverをサポートする必要があるため、このようなスクリプトの3つのバージョンを同期させるのは面倒です。このプロセスをORMLiteで自動化し、もちろんそれを活用したいと思います。
さて、私の理論を説明しましょう。あなたの専門家は、私が正しいか間違っているかを決めるかもしれません。結合を使用したDapperのクエリは、命名規則に基づいて、各テーブルの結果を分割して各クラスにマップします。「Id」または「id」フィールドがテーブルの最初のフィールドであることが期待されます。
Dapperには、命名規則に従わないテーブルを処理するための「SplitOn」オプションがあることは知っていますが(「Id」ではなく「IdProduct」をPKとして)、私の場合、実際には制御できないため、そのように使用することはできません。 ORMLiteのCreateTable関数でフィールドがどのように順序付けられるか。「id」が真ん中にあるため、現在と同じ問題が発生する可能性があります。
たぶん私のコードを見るともっと手がかりが得られるでしょう。これは、ORMLiteの前に正常に機能していたコードです。
そして、これは一時的な回避策です。
ORMLiteのコードを調べていましたが、問題を解決するために関数ToCreateTableStatementを変更する場所である可能性があります。おそらく、クラス定義の各フィールドに属性を追加して、フィールド作成の目的の順序を示すことができますか?
私はこれをFieldDefinitionコードに追加することを考えていました:
そして、次のようにC#フィールドを装飾するための属性を追加します。
次に、フィールドを作成するときに、コードはそのようなプロパティの値に従い、テーブル上の最終的なフィールドの位置を制御できるようにします。
私が正しい方向に進んでいるかどうか、またはこれよりもエレガントな別の方法があるかどうかを教えてください。
前もって感謝します。
c# - OrmliteがServiceStackMVCプロファイラーでプロファイリングされていない
サービススタックWebサービスにMVCプロファイラーがあり、リクエストがNlogに記録されているのがわかります。
ただし、PostgreSQLデータベースのプロファイルを作成しようとすると、ログが生成されません。
私は自分のglobal.asax.csにあります:
と
servicestack - ServiceStack OrmLite Sqlite 例外
次のコード行があります。
次の例外が発生します。
BadImageFormatException 不正な形式のプログラムをロードしようとしました。(HRESULT からの例外: 0x8007000B)
これは 32 ビットと 64 ビットのアプリケーションに関係しているのではないかと考えたので、両方のバージョンの dll を試しました。さらに、IIS を介して 32 ビット アプリケーションも有効にしました。このエラーが発生する理由を教えてもらえますか?
sql-server - ServiceStackOrmliteおよびRowVersionのサポート
更新中にSQLサーバーの行バージョンをサポートする最も簡単な方法は何ですか?
私はこれを試しました:
しかし、バージョンを比較するため、それは惨めに失敗しますVarchar(8000)
。
まったく同じではありませんが、ServiceStackとOrmLiteの質問です。
関連するエンティティの説明を熱心にロードするための最良の方法は何ですか?私はこれを見ましJoin
たが、チェンジセットがチェックインされていることに気づきましたか?これにより、POCOクラスには、外部キーごとに追加の「無視された」説明が含まれるようになりました。