Orchard CMSでは、完全なテーブル名を取得する最もよい方法は何ですか?カスタムSQLクエリを実行したいので(IRepository<T>
を使用しないでください)、このために完全なテーブル名が必要です。 SchemaBuilder.TableDbName
を使用できますが、SchemaBuilderを作成するには、IDataMigrationInterpreter、featurePrefix、およびformatPrefixも必要です。どこで入手できますか? IDataMigrationInterpreter Orchardの依存性注入メカニズムを介して取得できますが、どこでモジュールを開発しているので、接頭辞をハードコードすることはできません。Orchard CMSでカスタムSQLクエリの完全なtablenameを取得
3
A
答えて
2
テナントのテーブル接頭辞(存在する場合)は、注射可能なShellSettings
オブジェクトで使用できます。後に続くテーブル名は単純なルールに従うので、ハードコードすることができます(これは動的ではないため、モジュールとレコードの名前のみに依存します)。
例については、組み込みのアップグレードモジュールを参照してください。 Upgrade.Services.UpgradeService
およびUpgrade.Controllers.ContentPickerController
。
例:
var tablePrefix = _shellSettings.DataTablePrefix;
var featurePrefix = "MyModule_MyFeature";
if (string.IsNullOrWhiteSpace(tablePrefix)) {
return $"{featurePrefix}_{type.Name}";
}
return $"{tablePrefix}_{featurePrefix}_{type.Name}";
関連する問題
- 1. Orchard CMSとカスタムMVC eコマースサイトの統合
- 2. U-SQLクエリでファイルの完全パスを取得する方法
- 3. PostgreSQLで完全実行クエリを取得
- 4. Neo4jでクエリの完全なグラフを取得
- 5. Magento、SQLクエリを使用して完全な製品URLを取得する
- 6. 顧客ポータルとしてのOrchard CMS - カスタム認証の追加
- 7. ElasticsearchクエリJavaの完全な説明を取得するには?
- 8. SolrQueryの完全なクエリ文字列を取得する
- 9. SQL Serverデータベースの完全なメタデータを取得する方法
- 10. アンドロイドカーネルモードで完全なパッケージ名を取得
- 11. スパークログで完全なスタックトレースを取得
- 12. c# "#"で完全なURLを取得
- 13. Orchard CMS Render module view in homepage
- 14. Orchard CMSのOrchard Setupビューを上書きする
- 15. Orchard CMSのIdentityPartとは何ですか?
- 16. 完全なCSSで結晶レポートの完全なHTMLコードを取得
- 17. ScrollView Androidの完全なスクリーンショットを取得
- 18. Gmail API .NET:完全なメッセージを取得
- 19. PLCrashReportから完全なデータを取得
- 20. 完全なC++コンパイラコマンドラインを取得
- 21. Radare2から完全なバイナリコントロールフローグラフを取得
- 22. URLのクエリで完全なパスを取得する方法1 uiRouter?
- 23. SQLでのビューとクエリの完全なクエリを表示するには
- 24. Glimpse in Orchard CMSの使い方
- 25. Orchard CMS 1.10.2 TinyMCEの設定変更
- 26. ストライプで取引の完全なデータを取得
- 27. sqlクエリから完全なカレンダーのjsonイベントを生成する
- 28. オーチャードCMSを完全にプライベートにする
- 29. SQL Serverクエリの場合完全クエリを使用する場合
- 30. i18nをサポートする完全CMS(またはCMS用フレームワーク)
おそらく、それは一般的に脆いコードにつながる素晴らしいアイデア、ないことを指摘すべきです。これらのテーブル名の問題を抽象化して、コードをDBに中立に保ちます。 –