質問: "ok"; return Json(Result); } ``` 私は動的にテーブルの名前を変更する機能を持つすべてのそのような操作のための普遍的な方法を手に入れたいです。理想的には、テーブル名を文字列として設定してください。これはSQL挿入を使用して実行できることを私は知っていますが、EF COREでこれを実装するための単純な方法は本当にありません
回答: 申し訳ありませんが、モデルを作り直す必要があります。 タイプごとに1つのテーブルがある限り、一般的なことをすることができます - あなたは設定に入り、データベーステーブルを変更することができます。 OpenIddictはそれを可能にします。 DbContextのコンストラクタを上書きして、オブジェクトモデルで必要なことをすべて実行できます。これにはテーブル名の変更も含まれます。 あなたができることはまたあなたがパラメータとして扱うクラスを取る一般的な基本クラスです。私はそれらを持っています - (a)dbエンティティ型と(b)api側dto型を取り、それからそれらの間をマッピングするためにいくつかの一般的な関数とAutomapperを使用します。 しかし、テーブル名を動的に取得する必要がある瞬間、あなたは苦痛の世界にいます。 EF標準アーキテクチャは、オブジェクト型がデータベースエンティティにマッピングされることを前提としています。そのため、IDはテーブル内で一意です。リレーショナルモデル全体はそれに依存します。 Id 44は、特定のオブジェクトに対して一意である必要があります。オブジェクトおよびこの時点でロードされたテーブルに対してではありません。 実際の論理、つまり削除についても、見逃しています。私はあなたに言うのを嫌います、しかしあなたが読むために他の層にセキュリティを実装することができる間、私のwrite / updateメソッドのひとつひとつが手書きです。今、それは "承認"が動作するように見えるかもしれません - しかし、いいえ、それはしません。または - あなたのアプリケーションが "Hello world"という複雑なものであれば問題ありません。特定のビジネスコンテキストで操作が許可されているかどうか、またユーザーがオーバーライドスイッチを設定しているかどうか(特定のビジネスルールを無視するかどうか)にかかわらず、テストコードのページを実行します。とにかく具体的です。 ああ、あなたもできることは...たくさんのテーブルを持っているように見えるからです。一つのクラスを使わず、それらを生成してください。足場はそれほど複雑ではありません。最後のEFコアデータベースクラスを生成したときのことをほとんど覚えていません - 今日ではそれらすべてがEntity Developer(Devartのツール)から出てきます。一方、dbは変更スクリプトで処理されます。これは、フィルタ処理されたインデックス、トリガ、特定のSQLを含む一部のsp、およびビューを意味するため、移行はまったく機能しません。 しかし、今は、同じオブジェクトをバックグラウンドで保持しながら、テーブル名を動的に上書きすると、非常に速く噛み付くでしょう。それはおそらく非常に単純化されたもの - あなたが知っている、 "こんにちは世界"の例 - のために働くだけで、あなたが実際に論理を持っている瞬間をバラバラにします。