如何为linq查询分配角色

本文关键字:分配 角色 查询 linq | 更新日期: 2023-09-27 17:51:02

我试图区分下面两个查询之间的用户。我在db服务器中没有'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; }
  }

目前,我正在经历以下字段用户名,密码和角色编译错误。错误——"UserDetail不包含用户名、密码和角色的定义。"

我不确定这是否是正确的方法,如果有人能在这个问题上给我建议,我将非常感激。

期望的输出,我正在从这个方法中寻找,如果我想能够使用这个查询来测试,对于特定的角色名称(例如试用),只有匹配试用查询的用户才能访问某些信息/页面。

如何为linq查询分配角色

看起来你只是在初始化中反向赋值:

// Build a user and add the appropriate Trial role
return new UserDetail() {
    uUsername = query.uUsername, 
    uPassword = query.uPassword, 
    Role = "Trial" };

但是如果没有看到UserDetail的定义,很难确定。

编辑

好吧,我现在看到的问题-不,你不能动态地添加属性到UserDetail类。您可以添加一个类定义(只是不映射到DB)或创建另一个类与Role属性,并以某种方式链接到UserDetail,但您不能简单地添加这样的属性。