如何处理ASP.Net MVC中其他表与用户的关系?

时间:2009-05-29 09:59:18

标签: asp.net-mvc asp.net-membership membership

在表级别我将aspnet_User.UserID设置为其他表中的UserID的外键(如Posts.UserID,因此每个帖子都有一个所有者)。这是要走的路吗?

当我创建LINQ to SQL模型时,我应该包含aspnet_User表吗?

当我创建帖子(Posts表中的记录,Post对象)时,如何设置与登录用户的关系(控制器中的用户对象)?

2 个答案:

答案 0 :(得分:1)

我没有将aspnet_User表包含到我的linq-to-sql中,因为我真的不需要它。我使用内置的方式访问会员数据。

但对于您的表格帖子,您可能更容易将其包含在内,以便您可以通过执行myPost.User.Name轻松显示用户名称

编辑:

    MembershipUser user = Membership.GetUser();
    Guid userGuid = (Guid)user.ProviderUserKey;

    Post post = new Post
            {
                 UserId =userGuid,
                 Message = message                                      
            };

答案 1 :(得分:0)

在您的数据库架构中,您应该UserID表中的Post是{{1>}的{em>外键,aspnet_user table上的UserID 1}}字段。这样,您就可以确保数据干净。我甚至会添加级联删除&更新关于该关系。

然后,请参阅previous question you asked中有关如何获取用户数据的说明。

(Thomas Stock简要总结了一下,上面,但是:))