問題タブ [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.
servicestack - ServiceStack.OrmLite での SQL Server 例外処理のベスト プラクティスは?
SQL Server プロバイダーで ServiceStack.OrmLite を使用しています。
以下のコードフラグメントを考えると:
SQL Server 例外を取得するためのベスト プラクティスはありますか?
レコードが db.Single 呼び出しの結果にあるかどうかを知る最良の方法は何ですか? db.Single が無効なメッセージ ID (つまり、データ セットにないメッセージ ID) で呼び出されると、例外が発生するようです。メッセージ ID がデータベースに存在する場合、呼び出しは例外なく戻ります。try catch ブロックなしでこれを行う方法はありますか?
try/catch ブロックなしで呼び出しが行われた場合の例外:
ArgumentNullException 値を null にすることはできません。
パラメータ名: ENSMessageEntry: 'ID = 25' は存在しません
そして、ここに私のコードがあります:
nunit - NUnit で ServiceStack.OrmLite を単体テストするときに、サービス クラスに Db を挿入するにはどうすればよいですか?
「新しいAPI」(ServiceStack.ServiceInterface.Serviceから継承)を使用して、ServiceStackを使用して作成されたいくつかのサービスクラスのユニットテスト(NUnitを使用)を作成することに興味があります。サービスの Db プロパティは、AppHost を使用して ASP.NET アプリケーションでホストされている場合は適切に自動配線されますが、その環境の外で実行する場合の適切な手法を理解できないようです。ServiceStack にはさまざまなテスト関連の名前空間とクラスがありますが、単純に接続ファクトリを直接設定してからさまざまな IDbConnection 拡張メソッドを呼び出すのではなく、サービスの Db プロパティが挿入されている明確な例を見つけることができません (挿入、選択など)。
テスト クラスを ServiceStack.ServiceInterface.Testing.TestBase から継承させ、その Configure メソッドをオーバーライドして IDbConnectionFactory を登録し (":memory:" を使用)、OrmLiteConfig.DialectProvider = SqliteDialect.Provider;
TestFixtureSetUp で設定しようとしましたが、NullReferenceException が発生し続けます。サービス メソッドを呼び出します (ServiceStack.ServiceInterface.Service.get_Db() で)。Funq コンテナは何も自動配線していないようです。
SQLite 自体は適切に設定されています。これは、サービス クラスをバイパスして IDbConnection を直接呼び出す単純な単体テストで確認できます。
私は何が欠けていますか?
編集
ServiceStack サービスの単体テストには、ホストとクライアントの存在が必要なようですが、シリアライゼーション コストを回避するためにこれを設定する方法があるようです (ここに示すように、DirectServiceClient を使用) 。私の場合、それを機能させることに成功しました。AppHostHttpListenerBase アプローチ (こちらを参照) を使用してこれを機能させることができましたが、これはユニット 1 というよりも統合テストです (したがって、遅くなります)。
ormlite-servicestack - servicestack ormlite sqlite DateTime挿入時にTimeZone調整を取得
オームライトを試しています。DateTime プロパティを持つオブジェクトを挿入すると、ormlite によって -8:00 (私のタイムゾーンは +8) が適用されることがわかりました。文字通り何時かを挿入する必要があります。私の場合、それはすでにUTCです。
ただし、ormlite から値を読み取ると、+8 が再適用されません。
これは既知のバグですか?
ありがとう
sql-server - ServiceStack OrmLite で自動インクリメントされた ID を取得するには?
ID を持つテーブルの場合:
データベースに新しい行を挿入するとき、オブジェクトの ID を取得する最良の方法は何ですか?
例えば:
db.Insert<> (新しいユーザー ());
挿入後の Id の値は 0 ですが、データベースでは明らかにそうではありません。私が見ることができる唯一の可能性は次のとおりです。
ただし、これが安全な呼び出しになるとは思いません。数百の挿入が同時に発生している場合、別の挿入の ID が返されることがあります。EF では、挿入時に Id が設定されます。
これについて最善の方法を知っている人はいますか?
asp.net - OrmLite は本当にデータベースに依存しないのですか?
私は Service Stack と OrmLite を初めて使用し、Entity Framework の代替として ORMLite を検討していました。これについて 2 つの質問があります。 - EF が魅力的な理由は、データベース操作とビジネス データ モデルを別々のレイヤーに分離できることです。 - EF は、構成ファイルの接続文字列で指定したものを使用して実行できます。ORMLite は、データベースごとに異なるフレーバーを持っているようです。これは、コードを繰り返し変更する必要がないため、私にとっては懸念事項です。
私は物事を正しく理解していますか?どうか明らかにしてください
ありがとう
スラジ
servicestack - ServiceStackのDTOの値構造体
DTOで構造体を適切にシリアル化する方法がありますが、フレームワークで構造体をdtoとして処理する方法があります。
JsConfig.TreatValueAsRefTypes値について通知されましたが、それはjsonで機能しますか?xml、soap、mq ectについてはどうですか...私は単に構造体を使用したいので、それらをdtoにマップする必要はありません。これは私のプロジェクトでは何年もかかります...
一方で、JsConfig.TreatValueAsRefTypesで何が間違っているのかを理解することもできません。コンパイラは、静的コンテキストで呼び出されていると考えているようです。非静的フィールドのメソッドにはオブジェクト参照が必要です。
c# - 実行時に POCO クラスにプロパティを追加する
私のプロジェクトには、純粋なデータ指向アプリケーションであるServiceStack OrmLiteを選択しました。CodeDOMを使用して実行時にクラスを生成するために使用される XML 形式で定義された独自のオブジェクト型をエンド ユーザーが作成できるようにしたいと考えています。
アプリケーションに必要な「システム」オブジェクト (つまりUser
) もいくつか定義しますが、エンド ユーザーが使用するすべてのプロパティを予測することはできないため、設計時に作成したクラスを拡張できる方法を探しています。以下のサンプル
エンド ユーザーは と を必要としていEmail
ますAddress
。彼は 2 つのプロパティを上位クラスに追加できるはずであり、クラス全体が追加されます (上書きが許可されているため、OrmLite で引き続き使用できます:
(クラスが既にインスタンス化されている場合) システムをクラッシュさせるリスクがあることを知っているので、この問題を回避し、必要性を模倣する最善の方法を探しています。
design-patterns - ServiceStack + ORMLite + リポジトリ パターン
ORMLite を使用してリポジトリ パターンを実装しようとしています。私は最初に次のことから始めました:
しかし、リポジトリ内のすべてのメソッドの下にこれを配置するのは少し繰り返しのように思えましたか? そこで、すべてのリポジトリが継承するデータ コンテキスト クラスを作成しました。
そのDataContext
クラスは次のとおりです。
次に、メソッドでこれを行うだけです。
これが良いデザイン パターンであるかどうか、および ORMLite でのデータ アクセスにリポジトリ パターンを使用するときに他の人が思いついたものであるかどうかに興味がありました。
servicestack - AutofacがIRequestContextを解決しないServicestack
ServiceStackのキャッシュ機能を使おうとしています。これらは、サービスのIOCによって挿入されるRequestContextを介してアクセスされます。
これは、デフォルトのFunq IOCを使用している場合は期待どおりに機能し、AutoFacをフックすると機能せず、RequestContextがnullであり、autofacを構成してビルドする方法がわかりません。ここに手がかりはありますか?私のAutoFac構成:
編集:
私のサービスはすでにServiceStack.ServiceInterface.Serviceを拡張しています:
これはIRequiresRequestContextを実装し、RequestContextはnullです。autofacを削除すると、期待どおりに機能します。Autofacの場合RequestContextはnullです
servicestack - ServiceStack /ORMLite-外部キーの関係
私は次のPOCOを持っています:
私Comment
とTag
エンティティにFKがあります。それで、私は私のサービスからの私の応答でそれらを返したいのですが、それは'Invalid Column name 'Comments''
と言い'Invalid Column name 'Tags''
ます。ORM Liteを使用して、投稿に添付されているコメントとタグを確認するにはどうすればよいですか?EFでは、単にIncludeを使用して、関連するテーブル情報を遅延ロードします。同等のものは何ですか?
編集
答えに応えて、私はこれをしました:
次に、私のサービスでは、これを返します。私のエンティティはM:M関係であるため、私のエンティティPostTag
は交差エンティティです。Post
Tag
良いデザインパターンかどうかわかりませんか?
編集2
これが私のエンティティです: