MVC代码优先:自己的模型和SimpleMembership用户之间的一对多关系
本文关键字:用户 SimpleMembership 之间 关系 一对多 模型 代码 自己的 MVC | 更新日期: 2023-09-27 18:28:15
我目前在一个活动日历网站上工作,在ASP.NET方面我还是个新手。我使用的是MVC4框架,以及MVC4模板附带的EntityFramework(CodeFirst)和SimpleMembershipProvider。我也在使用迁移——如果有兴趣的话。
到目前为止我得到了什么
我目前有两个模型,一对多关系,运行良好:
_Events.cs(必须这样命名,因为事件是保留的)
public class _Event
{
public int _EventId { get; set; }
public string Name { get; set; }
public DateTime StartDate { get; set; }
public DateTime EndDate { get; set; }
public virtual List<Comment> comments { get; set; }
}
Comment.cs
public class Comment
{
public int CommentId { get; set; }
public string Text { get; set; }
public int _EventId { get; set; }
public virtual _Event _Event { get; set; }
}
问题
现在,我想从Membership模型中添加Comment和User之间的另一个一对多关系,但似乎不知道如何做到这一点
我想归档的目标是,我可以为每个事件提供一个命令列表,并打印出每个评论的用户信息。我试了好几种方法,但都没能奏效。我的最后一次尝试是这样的:
public class Comment
{
// snip - see above
public virtual UserProfile User { get; set; }
}
我非常感谢你提前提供的任何帮助。
你需要在你的评论中有UserId。
public class Comment
{
// snip - see above
public int UserId {get; set;}
public virtual UserProfile User { get; set; }
}
您还需要设置您的评论和用户之间的关系,以便在您的帐户控制器中有类似的内容。
public class UserProfile
{
[Key]
[DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
public int UserId { get; set; }
public string UserName { get; set; }
public virtual ICollection<Comment> Comments { get; set; }
}
在ASP.net MVC项目中,如果您想使用默认的Microsoft Membership Provider,请注意您需要实现类似角色提供者的成员系统,以便在您创建的模型和成员系统之间建立关系、导航和更多的功能主义者。Microsoft将用户相关信息存储在项目中的单独位置(如App_Data文件夹中的数据库)。
因此,您需要将其他模型存储到Microsoft存储位置,直接使用Microsoft函数并为此设置连接字符串或实现Microsoft Membership以将用户信息存储在相关数据库中,如在C#中实现代码优先成员资格提供方的NUGET Package。您可以安装此软件包并学习编写自己的会员资格提供商。搜索"MVC或aspnet成员资格提供商的自定义成员资格提供商"可以找到更多帮助。