問題タブ [subsonic-simplerepository]
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.
sql - 「キー」という名前のサブソニック列
MySQL データベースに「キー」という名前の列があります。どうやら
SQLコードを生成します
のような正しいものの代わりに
後の動作を強制するにはどうすればよいですか (SubSonic のバグですか?)
.net - ORM 比較: データベースとクラスのどちらが先か?
最近、利用可能な .NET ベースの ORM を調べています。それぞれが 1 つまたは 2 つのキャンプに配置されることに気付きました。ある陣営では、データベースが最初に作成され、ORM はアプリケーションでデータベースにアクセスするためのより簡単な方法を提供します。2 番目の陣営では、オブジェクト モデルが最初に存在し、ORM によってオブジェクト モデルのデータベースへの永続化が容易になります。
ここで私は、ある陣営が他の陣営よりも優れているかどうかを尋ねたり、主張したりしているわけではありません。それぞれの設計方法論の理由が確かにわかります。私を苛立たせているのは、私が最近読んだすべてのチュートリアルと「入門」ドキュメントのうち、どれも出てきて、最初に「このツールは、既存のデータベース/オブジェクトモデルから始めていることを前提としています」と言うだけです. 私にとって、これは、ある ORM を使用するか、別の ORM を使用するかについて非常に基本的なことです。
それで、たくさん読んで、いくつかの「Hello World」プロジェクトを作成した後、調べた ORM でサポートされているワークフローに関する一連の箇条書きをまとめました。これらのツールを使用した経験のある人なら、私が間違った発言をしたり、本当に重要な点を完全に見逃したりしていないか教えてもらえますか? 具体的には、各ツールでデータベース スキーマまたはオブジェクト モデルを最初に使用する必要があるかどうかについての私の仮定が正しいかどうかを知りたいです。
- データベースが最初に存在する必要があります
- SQL Server でのみ動作します
- DataContext クラスは、クラスとデータベース間の読み取り/書き込みに使用されます
- DataContext は実際の物理クラスを返すか、動的型を使用してデータベース スキーマに基づいて型を自動的に作成できます。
- テーブル名をクラス名に、プロパティ名を列名にマッピングするデフォルトのマッピング
- マッピングは、各クラスに埋め込まれた属性を介してカスタマイズできます
- 最初にデータベースを作成する必要があります
- 多数のデータベース技術と連携
- クラスは、T4 テンプレートを使用して既存のデータベース スキーマから自動的に生成されます
- クラスが生成されると、データベースへの接続は完全に透過的になります
- クラスコンストラクターを呼び出すと、データベースにレコードが自動的に作成されます
- プロパティ値を変更すると、データベースが自動的に更新されます。
- クラス構造が最初に来るべきです
- 多数のデータベース技術と連携
- リポジトリ クラスが作成され、データベースに接続されます
- クラスがリポジトリに追加されると、データベース スキーマが自動的に作成および更新されます。
repo.Add<MyClass>(instance);
- リポジトリはリフレクションを使用してデータベース スキーマを作成/更新します
- 時間ごとにテーブルを作成し、プロパティごとに列を作成します
- データベースまたはクラス構造のいずれかを最初に作成できます
- 新しいクラス構造を既存のデータベースに一致させるためにマッピングを作成できます
- マッピングを使用して、データベース スキーマを自動的に生成できます
- 多数のデータベース技術と連携
- 最終アセンブリ内のクラスは、クラスとプロパティをテーブルと列にマップする NHibernate マッピング設定で属性付けされます
- マッピング構成を追加するには 2 つの方法があります
- バイナリに埋め込まれた XML ファイル、
<classname>.hbm.xml
- コードに追加された属性
- バイナリに埋め込まれた XML ファイル、
- 1 対 1、1 対 5、多対 1、多対多、継承などを含む高度なマッピング構成をサポートしています。
subsonic - Subsonic 3 - シンプルなリポジトリと外部キーの作成
そこにはほとんど例がないように思われるので、ここに行きます:
これが私の3つの構造ですが、テーブルを適切に作成していないようで、次の行を呼び出すと、IDが認識されていないと表示されます:
役割権限:
許可:
役割:
c# - SubSonic 3 の簡単なリポジトリに関する質問
Subsonic 3 の単純なリポジトリ パターンを使用して、データベースから値を保存および取得しています。Singleton patten を使用して作成する必要があるか、必要なときに作成する必要があるかを知りたいSimpleRepository
です。次のような Person クラスがある場合のように:
または、このようなレポにアクセスします
c# - SelectはIQueryableでは機能しませんが、IListでは機能します
2行のコードがあります。1つは
ともう1つ
唯一の違いは、2番目ToList()
のステートメントがステートメントの後に呼び出されるWhere
ことです。2番目のステートメントは問題なく機能します。
最初のステートメントでは、パラメーターを持つコンストラクターの代わりに、デフォルトのパラメーターなしのコンストラクターがヒットします。したがって、リストは作成されますが、リスト内のオブジェクトは、d.QualityTypeではなくデフォルト値で初期化されます。
問題のファイルの完全なソースは、(メソッド:GetBestQualityInHistory)で確認できます。
https://github.com/kayone/NzbDrone/blob/master/NzbDrone.Core/Providers/HistoryProvider.cs
ToList
**編集:さらに調査した結果、Lastがsubsonicに置き換えられた場合、これはSubSonicのバグのようOrderBy
ですThe construtor 'Void .ctor(NzbDrone.Core.Repository.Quality.QualityTypes, Boolean)' is not supported
。
performance - SubSonic AddMany() 対 foreach ループ Add()
SubSonics AddMany() メソッドが単純な foreach ループよりも高速かどうかを調べようとしています。SubSonic のサイトを少し調べてみましたが、パフォーマンス統計についてはあまりわかりませんでした。
私が現在持っているもの。(.ForEach() は、 forEach(.....){ do stuff} と同じように機能することを除いて、いくつかの検証を行うだけです)
どっちも変わる
この方法で気付いた場合、処理したレコードの数が失われますが、これは重要ではありません... しかし、このツールで移動されたレコードの数をユーザーに表示できると便利です。
したがって、私の質問は次のようになります: AddMany() を使用すると著しく高速になりますか? 実際にコピーされたレコード数を取得する方法はありますか? 成功した場合、すべてのレコードが処理されたと想定できますか? 1 つのレコードが失敗した場合、プロセス全体が失敗しますか?
前もって感謝します。