从另一个模型获取成员资格用户对象

时间:2012-01-25 09:58:13

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

我想要这样的事情:

public class Order
{
    public Guid OrderID { get; set; }
    public Guid UserId { get; set; }
    public DateTime OrderDate { get; set; }
    public decimal Amount { get; set; }

    public virtual ICollection<OrderDetail> orderDetailByOrderID { get; set; }
    public virtual MembershipUser userByOrderID { get; }
}

所以从上面的代码我希望会员用户可以从Order对象访问.... 但是我试过了,但它不起作用。

所以如果您遇到过这种情况,请提出一些解决方案

1 个答案:

答案 0 :(得分:0)

听起来您可能正在使用Entity Framework Code First。如果是这种情况你可能想要:

public virtual aspnet_Membership userByOrderID { get; set; }

而不是

public virtual MembershipUser userByOrderID { get; }

这将获取与aspnet_Membership外键绑定的UserId实体。 aspnet_Membership类与MembershipUser实体并不完全相同,但它们具有许多相同的属性。

如果这不起作用,您可以始终按原样使用Order模型,并生成具有MembershipUser对象的ViewModel。

public class OrderViewModel
{
    public Order Order { get; set; }
    public MembershipUser User { get; set; }
}

并在将ViewModel传递给视图

之前创建这样的ViewModel
Order order = EntityDataContext.Orders.First();
var model = new OrderViewModel { Order = order, User = Membership.GetUser(order.UserId) }