我正在尝试区分以下两个查询之间的用户。我没有' rolename'数据库服务器中的字段,但我想知道是否可以将角色名称分组或分配给查询
这是我目前提出的其中一个查询:
public class User : iUser
{
private cd db;
public User()
{
db = new cd();
}
public User(cd context)
{
db = context;
}
public string Role { get; set; }
public UserDetail trial(string username, string password)
{
string[] role = new string[] { "trial"};
var query = (from s in db.Subs
join u in db.UserDetails on s.sUID equals u.uID
where s.sExpiryDate >= DateTime.Now &&
u.uUsername == username &&
u.uPassword == password
select u).FirstOrDefault();
if (query != null)
{
// Build a user and add the appropriate Trial role
return new UserDetail() { query.uUsername = username, query.uPassword = password, Role = "Trial" };
}
else
{
// No user was found
return null;
}
}
}
UserDetail类:
public partial class UserDetail
{
public UserDetail()
{
this.Subs = new HashSet<Subs>();
this.Trial = new HashSet<Trial_Try>();
}
public int uID { get; set; }
public string uUsername { get; set; }
public string uPassword { get; set; }
}
目前,我遇到以下字段用户名,密码和角色的编译错误。错误 - &#34; UserDetail不包含用户名,密码和角色的定义。&#34;
我不确定这是否是正确的方法,如果有人可以告诉我,在这个问题上,我将非常感激。
欲望输出,我正在寻找这种方法,如果我希望能够使用此查询,测试,对于特定的角色名称(例如试用),只有符合试用查询的用户才能访问某些信息/页。
答案 0 :(得分:0)
看起来你只是在初始化中向后转移了作业:
// Build a user and add the appropriate Trial role
return new UserDetail() {
uUsername = query.uUsername,
uPassword = query.uPassword,
Role = "Trial" };
但是没有看到UserDetail
的定义,很难确定。
修改强>
好的,我现在看到了这个问题 - 不,你不能动态地向UserDetail
类添加属性。您可以在类定义中添加一个(并且不将其映射到数据库),也可以使用Role
属性创建另一个类,并以某种方式将其链接到UserDetail
,但你不能简单地添加这样的属性。