4

我目前正在开发一个活动日历网站,但在 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; }
}

评论.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; }
}

非常感谢您提前提供的任何帮助。

4

2 回答 2

2

您需要在您的评论中包含 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; }
    }
于 2013-08-19T14:16:04.033 回答
1

在 ASP.net MVC 项目中,如果您想使用默认的 Microsoft Membership Provider,请注意,您需要实现像角色提供者这样的会员系统,以便在您创建的模型和会员系统之间建立关系和导航以及更多功能。Microsoft 将用户相关信息存储在项目中的单独位置(如 App_Data 文件夹中的数据库)。

因此,您需要将其他模型存储到 Microsoft 存储位置,直接使用 Microsoft 函数并为此设置连接字符串,或者实现 Microsoft Membership 以将用户信息存储在相关数据库中,例如在 C# 中实现 codefirst 成员资格提供程序的NUGET 包。您可以安装此软件包并学习编写自己的会员提供程序。更多帮助将通过搜索“MVC 的自定义成员资格提供程序或 aspnet 成员资格提供程序”找到。

于 2013-08-19T13:10:59.833 回答