【发布时间】:2014-04-06 05:37:46
【问题描述】:
我正在与自定义会员提供商合作。我还在使用继承和扩展 MembershipUser 的成员资格类。
我的问题来自创建用户并保存到数据库。当我观察数据库时,我只发现以下列具有正确的数据。其余属性未在列中列出。
- 身份证
- 测试
- 电子邮件
- 评论
- 已批准
- 上次登录日期
- 上次活动日期
发生了什么?如何更正此问题以包含其余属性?
会员等级如下所示:
public class MyMembershipUser : MembershipUser
{ public MyMembershipUser(string providerName,
string name,
Object providerUserKey,
string email,
string passwordQuestion,
string comment,
bool isApproved,
bool isLockedOut,
DateTime creationDate,
DateTime lastLoginDate,
DateTime lastActivityDate,
DateTime lastPasswordChangedDate,
DateTime lastLockoutDate) :
base(providerName, name, providerUserKey, email,
passwordQuestion, comment,
isApproved, isLockedOut,
creationDate, lastLoginDate,
lastActivityDate, lastPasswordChangedDate,
lastLockoutDate)
{
}
[Key]
public int Id { get; set; }
public string test { get; set; }
}
:
我的创作如下:
MyMembershipUser usr = new MyMembershipUser(.......);
dbcontext.users.Add(usr);
dbcontext.SaveChanges();
已编辑............
进一步的研究使我对 MembershipUser 的定义和我所看到的功能之间的关系有了以下理解。
email - virtual get; set - Stored in DB
comment - virtual get; set - Stored in DB
isApproved - virtual get; set - Stored in DB
lastLoginDate - virtual get; set - Stored in DB
lastActivityDate - virtual get; set - Stored in DB
Username - virtual get - Not Stored
providerName - virtual get - Not Stored
providerUserKey - virtual get - Not Stored
passwordQuestion - virtual get - Not Stored
isLockedOut - virtual get - Not Stored
creationDate - virtual get - Not Stored
lastPasswordChangedDate - virtual get - Not Stored
lastLockoutDate - virtual get - Not Stored
在构造函数之后,所有的值都被初始化并可用,所以在基类中有一些存储;但是,由于其中一些不在 DB 表中,因此以后的检索不适用于这些属性。由此,我确定我必须实现自己的坚持。如何在 MyMembershipUser 模型中执行此操作而不与基类属性冲突?
为了快速测试,我尝试了以下方法但没有成功。 base.PasswordQuestion 是只读的。
public virtual string PasswordQuestion {
get {
return base.PasswordQuestion;
}
set {
base.PasswordQuestion = value;
}
}
我一定是在左外野旅行。如果这些值无法更新和存储,它们有什么用。总而言之,它们不在表中,我无法将它们放在那里,我无法更新它们,并且如果不走一些我确定不是初衷的旁路,我就无法存储它们。
谁能指出我正确的方向。
【问题讨论】:
-
我不确定我是否遵循。据我所知,您已扩展 MembershipUser 以包含两个附加字段:“Id”和“test”。你是说这两个字段不是底层数据库表的一部分?
-
没有。那些出现在数据库中。请参阅包含确实出现的字段的编号列表(上图)。 MembershipUser 中还有其他字段没有出现。我不明白是什么阻止了继承的字段出现。而且我不明白如何让它们出现。
标签: c# asp.net-mvc