このすべての新機能: UserProfile プロパティを持つ Character のモデルがあるため、キャラクターを UserProfile エントリに関連付けることができます。これにより、UserProfile が Character の外部キーになります。
キャラクターモデル:
public class Character
{
public int ID { get; set; }
public virtual UserProfile user { get; set; }
public string name { get; set; }
...
}
(別の投稿のために UserProfile プロパティを仮想にしましたが、これを維持する必要があるかどうかはわかりません)
新しいキャラクターを作成するときに、そのキャラクターのユーザー プロパティを、リクエストを行っている現在の Web ユーザーのオブジェクトに設定したいと考えています。たとえば、ユーザーがキャラクターを作成するプロセスは次のとおりです。 ログイン/サイトでユーザー アカウントを作成 [キャラクターの作成] をクリックします。
[HttpPost]
public ActionResult Create(Character character)
{
if (ModelState.IsValid)
{
character.user = ???
db.Characters.Add(character);
db.SaveChanges();
...
}
問題は、コントローラーから UserProfile テーブルにアクセスする方法がわからないことです。通常、テーブルにアクセスするには、dbContext のオブジェクトを作成しますが、UserProfile テーブルはデフォルトの MVC 4 コンテキストを使用し、アプリの他のすべてのオブジェクトは別の dbContext を使用しています。
私にはいくつかの解決策があると思いますが、その方法を理解することはできません:
- すべてのテーブルが 1 つの dbContext を使用するようにアプリケーションを設定する必要がありますか? もしそうなら、どのように?
- UserProfile が既に使用しているデフォルトの dbContext のオブジェクトを作成する方法はありますか?
用語が間違っていたり、重要な情報が抜けていたりした場合は、事前に申し訳ありません。必要に応じてさらに提供します。ありがとう