Asp.net 在我的实体中引用页面博客的创建者(连接的用户)
我有一个实体用于访问我的页面(博客页面) 这是:Asp.net 在我的实体中引用页面博客的创建者(连接的用户),asp.net,asp.net-mvc,Asp.net,Asp.net Mvc,我有一个实体用于访问我的页面(博客页面) 这是: public class Page { [Key] public int PageId { get; set; } public string AuthorName { get; set; } [ForeignKey("AuthorName")] public virtual MembershipUser Author { get; set; } public string Title {
public class Page
{
[Key]
public int PageId { get; set; }
public string AuthorName { get; set; }
[ForeignKey("AuthorName")]
public virtual MembershipUser Author { get; set; }
public string Title { get; set; }
public string Description { get; set; }
public string Content { get; set; }
public DateTime? PublishDate { get; set; }
public bool Published { get; set; }
public DateTime LastModified { get; set; }
}
如您所见,我想保留一个对创建页面的人的引用(事实上,这就是已连接的用户)。因此,我在类中定义了一个Author成员(MembershipUser类型)。我还尝试定义外键,但它不起作用,因为MembershipUser实体中没有主键。我无法将其添加到此实体,因为if是aspnet对象
如何在我的页面实体中引用页面的创建者
谢谢。您可以通过创建将从
MembershipUser
继承的CustomMembershipUser
来扩展MembershipUser
您可以向CustomMembershipUser
添加任何字段,然后还必须创建一个包含原始字段和额外字段的表
这说明了如何做到这一点。您使用的是什么ORM
无论如何,您将无法引用未映射到ORM中的类。您可以创建一个类似于
SystemUser
的实体,将其映射到一个表,并在页面
实体中引用它。当您使用会员身份
登录时,您可以查询该系统用户
,并将其存储在HttpSession
中,以便以后使用。谢谢您的回答。我宁愿避免这种解决方案。如果可能,我真的希望保留asp.net成员资格提供程序。因为我不必添加更多字段,我只想在我的“页面实体”和用户之间保留一个引用。如果扩展MembershipUser,您仍然可以使用ASP.NET提供的所有基础结构!您还可以将新实体(在您创建的表中)添加到您的模型中,这样您就可以对其具有导航属性。好的,所以“您将无法引用未映射到ORM中的类”。我想我只需添加一个string类型的成员并将用户名存储在其中。所以我的页面和我的用户之间没有链接。