これまでの内容: 私は、UserProfileプロパティを持つCharacterのモデルを持っているので、UserProfileエントリで文字をアシストすることができます。これにより、UserProfileがCharacterの外部キーになります。コントローラからのUserProfileへのアクセスMVC 4
キャラクタモデル:
public class Character
{
public int ID { get; set; }
public virtual UserProfile user { get; set; }
public string name { get; set; }
...
}
(私は、理由別のポストでのUserProfileプロパティは、仮想これはとどまるべきかどうかわからないように)
私はのユーザープロパティを設定する新しいキャラクターを作成しますそのキャラクタをリクエストしている現在のウェブユーザのオブジェクトに追加する。/ ログイン
[HttpPost]
public ActionResult Create(Character character)
{
if (ModelState.IsValid)
{
character.user = ???
db.Characters.Add(character);
db.SaveChanges();
...
}
問題は、私からのUserProfileテーブルにアクセスする方法がわからないです「の文字を作成」サイト をクリックしてユーザーアカウントを作成します。たとえば、ここでユーザーが文字を作るためにかかるプロセスです私のコントローラ。通常、テーブルにアクセスするには私のdbContextのオブジェクトを作成しますが、私のアプリケーションの他のすべてのオブジェクトが別のdbContextを使用している間に、UserProfileテーブルはデフォルトのMVC 4コンテキストを使用しています。私は私のためにいくつかの解決策があります推測している
、私が行う方法を見つけ出すことができたのどれも:
- は、私はすべてのテーブルが1 dbContextを使用するので、私のアプリケーションを設定しないべきか?もしそうなら、どうですか?
- UserProfileが既に使用しているデフォルトのdbContextのオブジェクトを作成する方法はありますか?
私の用語がオフになっている場合、または重要な情報が欠落している場合は、あらかじめご迷惑をおかけします。私は必要に応じてより多くを提供します。ありがとう
また、忘れてしまったら混乱するかもしれないと思います'UserProfile'エンティティの所有権。 Chris、 'AccountModels.cs'を見てください。 'UsersContext'という別の' DbContext'が存在するはずです。あなたはそれを使うことも、あなた自身でそれをマージすることもできます。 – Matt
私はそれをあなた自身のものに移し、 'UsersContext'を完全に削除することによって所有権を得ることを強くお勧めします。 – Matt
マット、そうです、これは私がしたいことです。それが可能であれば私は確信していましたが、どこにusersContextを探すべきか、どうやってこれを行うのですか?あなたがこれを行う方法についてもう少し詳しく、あなた自身の答えを書くつもりなら、本当に感謝しています。ありがとう! –