将类转换为字符串以匹配== lambda查询中的条件



我需要一种方法来获取ProcessedBy列和user.Id的匹配记录(在DB中,它们共享完全相同的字符串,但在不同的表中(。

简短:'user'是应用程序类别类的实例,而处理程序是li类applicationuser的属性。问题:如果我应用processedby.tostring((会有一个错误"无法将应用程序使用者转换为字符串"。处理BrocessedBy是类应用程序的属性,它直接包含ID,用户是类应用程序的对象,该对象包含ID作为字符串属性,而不是我需要弄清楚的。

public static void UpdateFilesProcessedByUser(ApplicationUser user)
{
    ApplicationDbContext db = new ApplicationDbContext();
    //Cannot convert ApplicationUser ProcessedBy to string, user.Id is a string
    IQueryableL<LI> DbQueryGet = db.LIs.Where(l =>
        l.ProcessedBy.ToString() == user.Id);  
    var GetNumberOfFiles = DbQueryGet.ToList().Count();
    IQueryable<ApplicationUser> DbQueryUpdate = db.Users.Where(u => u.Id == user.Id);
    var GetUser = DbQueryUpdate.ToList();
    GetUser[0].FilesProcessed = GetNumberOfFiles;
    db.SaveChanges();
}

和li类包含处理:

[Table("LIs")]
public class LI
{
  .
  .
  .
  public virtual ApplicationUser ProcessedBy {get; set;}
}

这是解决方案,如果我了解您的问题

我希望第一件事,您想将applicationuser.id转换为字符串,默认情况下的applicationuser.id是GUIDID。HEREHERE是参考链接:https://msdn.microsoft.com/en--美国/杂志/dn818488.aspx?f = 255&amp; msp; msp; spperror = -2147217396

因此,要将GUID转换为字符串,以下是:

Guid userid = user.Id;
string usrid = userid.ToString();

附加引用:https://www.codeproject.com/questions/124616/converting-guid-to-to-string-and-and-vice-vice-versa

加法信息:

以下是如何轻松获取用户ID和用户对象

的另一种方式
var user = UserManager.FindById(User.Identity.GetUserId());

外部控制器:

System.Web.HttpContext.Current.User.Identity.GetUserId();

有用的参考:https://stackoverflow.com/a/22835540/3397630

希望上述信息有用。

谢谢karthik

相关内容

  • 没有找到相关文章