登録と oAuth 認証のために MVC 4 テンプレートで使用される WebSecurity 機能によって使用されるエンティティ 'UserProfile' に関連するカスタム モデル (ブログ投稿など) を作成しようとしています。
以下の例:
public class Post
{
[Key]
[DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
public int Id { get; set; }
public string Detail { get; set; }
public UserProfile User { get; set; }
}
次のように、現在の UserProfile をブログ投稿に正しく関連付けることができます。
post.User = user = db.UserProfiles.FirstOrDefault(u => u.UserName.ToLower() == WebSecurity.CurrentUserName);
db.Posts.Add(post);
db.SaveChanges();
しかし、データベースからブログ投稿を取得しようとすると、ユーザーの null オブジェクトが取得されます。
var post = db.Posts.Where(x => x.Id == postId).FirstOrDefault();
post.User is null!
これは、SimpleMembershipProvider が以下で作成されたときにデータベースで作成された関係によるものだと思います。
WebSecurity.InitializeDatabaseConnection("DefaultConnection", "UserProfile", "Id", "UserName", autoCreateTables: true);
これを克服するには、これらを無視するか、ブログ クラスの User プロパティに属性を追加する方法が必要だと思いますか?
前もって感謝します。