問題タブ [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.
rest - これはPATCHの良いパターンですか?
PATCH
オブジェクトを編集できるRESTスタイルのAPIを実装しています。この操作の目的はPATCH
、クラス内の 1 つ以上のプロパティを、設定可能な他のプロパティに影響を与えることなく更新できるようにすることです。
ServiceStack OrmLiteページの部分的な更新の例ですが、 どのフィールドが部分的に更新されるかを示すためにハードコーディングが必要なようです。私のシナリオでは、送信するフィールドを決定するのは依存アプリケーション次第です。
オブジェクトがまだ永続化されていない可能性があるというシナリオにも対処する必要があります。
これを回避するために、以下を実装しました。
それは機能しますが、何かがおかしいと感じます。もっと良い方法があるに違いないと思いますか?
c# - ServiceStack.OrmLite で実行時にクラスのテーブル名を取得する / テーブル名のハードコーディングを避ける
ServiceStack.OrmLiteを使用していて、テーブルから行の総数を取得したいと考えています。私は現在、 ServiceStack.OrmLiteのドキュメントで指摘されているようにしています
ただし、テーブルの名前User
は将来変更される可能性があるため、ハードコーディングしない方法を探しています。次のように、対応するクラスからテーブルの名前を取得することは可能ですか
?
sql - SQL Server で行のバージョン管理を解決する
新しいデータベースをモデル化しようとしています。要件の 1 つは、異なる行のバージョンを保持することです。同じオブジェクトの 2 つのバージョンのサンプルを次に示します。
このテーブルを参照として外部キーを作成するには、主キーを指定する必要があります。2 つの候補はID
、UID
1 つ目はauto increment
数値、2 つ目はオブジェクトごとに手動で生成された一意の識別子です。
制限:
ID
主キーとして選択する場合:
- オブジェクトの新しいバージョンが作成されると、古いバージョンへのすべての参照が無効になり、更新する必要があります
- 各挿入のすべての参照を手動で更新することはオプションではなく、非常に重い
UID
主キーとして選択する場合:
UID
は一意ではないため、単独では使用できません。他のフィールドに関連付けて、複雑な主キー内で使用する必要があります- 使用される他のすべてのフィールドが変更される可能性があり、外部キー参照にブレーキがかかる可能性があります。
これらの制限を克服するための最良のアプローチ (可能な限り軽量) について何か提案はありますか?
PS : OrmLite を使用して、POCO オブジェクトを使用してデータベースをモデル化しています。
servicestack - ServiceStack.OrmLite で複雑なデータを照会するにはどうすればよいですか?
私は次のクラスを持っています:
そうすることでデータを挿入できますが、
Display
および表示データがとして列に追加されます{Options:[opt1,opt2,opt3]}
。今、私はフォロークエリを書くことに頭を悩ませることができません。
助けてください。
c# - ormlite - poco ファイルを生成する
私はORMLiteが初めてです。Entity Framework では、既存のデータベースから (CodeFirst を使用して) POCO ファイルを作成できます。これは Ormlite で可能であるとどこかで読みましたが、ドキュメント内には見つかりませんでした。
ORMLite がこの機能をサポートしていない場合に備えて、poco クラスを作成するためのフレームワークを推奨してください (EF で poco を生成したくありません!)。
ありがとうございました!
c# - カスタム クエリを使用して、ID のリスト内に ID が存在するアイテムを選択する
dapper では、次のようなことができます。
ormliteで同じことをしようとしています:
エラーを返します。Dapper は次のようにクエリを作成します。
ormlite が生成する場所:
角括弧は MySQL では無効です。ormliteでこれを行うことは可能ですか?
dapper の例のように、匿名クラスを使用してパラメーターをリストしようとすると、2 番目のパラメーターが見つかりません。
c# - OrmLiteのSQLServer固有のタイプのサポート
私は自分の仕事の多くを単純化する天才タイプについて学びましたが、私の好みのORMはそれを認識していないようです。
ServiceStackOrmLiteがSQLServerで認識できるようにするための回避策はありHierarchyId
ますか?変更するファイルに関する提案や、続行するためのヒントはありますか?
編集 :
これが問題のより良い例です。私は次のクラスを持っています:
SqlHierarchyIdは、カスタムSQLServerデータ型です。OrmLiteは、次のクラスを生成します。
[StringLength(255)]
おかしなことに、プロパティの属性を使用すると、varchar(255)
代わりにタイプが取得されます。
ここでテーブルを手動で変更し、違いを示すために列のデータ型を追加しました。3番目の列のデータ型に注意してください。
表現を持つことは、 C#内で変換できるためvarchar
、他のDBMSでもまったく問題ありませんが、SQL Serverでは、対応するデータ型と一致させることが望ましいです。これにより、ビューの作成が簡単になります(データ型の組み込み関数のため)。hierarchyid
このタイプはEF4でサポートされていないことを知っています(5についてはわかりません)。また、GitHubでOrmLiteDialectProviderBase.csファイルを参照すると、サポートされているADO.NETデータ型のリストを確認できます。
私の簡単な質問は次のとおりです。これはADO.NETによる強力な制限ですか、それともOrmLiteでいつか見られる可能性がありますか?何か提案があれば、この部分の拡張を喜んでお手伝いします。
c# - サービススタックormliteに複合主キーを実装しますか?
複合主キーを持つデータベース内のテーブルを表すpocoクラスを実装するにはどうすればよいですか?つまり、id1とid2があり、これらが一緒になって主キーを構成します。ここには実際の自動増分IDはありません。
repository-pattern - ServiceStack.ORMLite を使用したリポジトリ パターンでのトランザクション
次のように ServiceStack.ORMLite を使用してリポジトリ パターンを実装しています。
しかし、DbTransaction で DB 操作をワープする必要があるときに DbTransaction を処理する方法がわかりTransactionScope
ません。解決策のように見えますが、これには重すぎるかどうかはわかりません。