我需要一种方法来获取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