Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 无法隐式转换类型';字符串';至';整数';_C#_Asp.net Mvc_Type Conversion - Fatal编程技术网

C# 无法隐式转换类型';字符串';至';整数';

C# 无法隐式转换类型';字符串';至';整数';,c#,asp.net-mvc,type-conversion,C#,Asp.net Mvc,Type Conversion,这是MyCode: public ActionResult Index() { var EmployeerId = SessionPersister.Email_ID; //Convert.ToInt32(EmployeerId); int.Parse(EmployeerId); db.Job_Det.OrderByDescending(j => j.Job_ID).ToList().Where(x => x.Employeer_ID = Employ

这是MyCode:

public ActionResult Index()
{
    var EmployeerId = SessionPersister.Email_ID;
    //Convert.ToInt32(EmployeerId);
    int.Parse(EmployeerId);
    db.Job_Det.OrderByDescending(j => j.Job_ID).ToList().Where(x => x.Employeer_ID = EmployeerId);
    return View();
}

我尝试了许多转换方法。但是我无法将上面的字符串转换为整数。

您没有存储
int.Parse(EmployeerId)的结果它不会将employerid更改为int。。您需要将其保留为int变量,例如

eid = int.Parse(EmployeerId);

然后将
x=>x.Employeer\u ID=EmployeerId
替换为x
=>x.Employeer\u ID==eid
,除非您确实想用新值替换所有Employeer\u ID。

只需调用
Convert.ToInt32(EmployeerId)
int.Parse(EmployeerId)
不会更改
EmployeerId的类型
-这两种方法都将返回一个需要存储在新变量中的值

您目前也没有对查询结果执行任何操作—在调用
Where
之前调用
ToList()
,您获取了所有数据,然后在本地进行过滤,这是一个坏主意

最后,在查询中,您试图分配一个值,而不是比较它;您需要的是
=
运算符,而不是
=

我猜你想要的是:

public ActionResult Index()
{
    string employerIdText = SessionPersister.Email_ID;
    int employerId = int.Parse(employerIdText);
    var jobs = db.Job_Det
        .OrderByDescending(j => j.Job_ID)
        .Where(x => x.Employeer_ID == employerId)
        .ToList();
    return View(jobs);
}
int.Parse(EmployeerId)
;不会更改EmployeedId。您需要为int值使用另一个变量

var iEmployeerId = int.Parse(EmployeerId);

为什么您知道它失败了?如果
EmployeerId
string
,那么您需要首先将它转换为
int
x=>x.Employeer\u ID=EmployeerId
只有一个等号?此外,int.parse结果没有要存储的变量。是的,var Employeerid是字符串,需要将其转换为int。。。因为我尝试了许多转换方法,但没有效果。@JaffarHayat:它没有改变变量的类型,不,它不能。相反,这些方法返回一个新值。非常感谢您。。。现在开始工作了,太好了:)
 public ActionResult Index()
{
    var EmployeerId = SessionPersister.Email_ID;
    //Convert.ToInt32(EmployeerId);
   int EmpId=int.Parse(EmployeerId);
    db.Job_Det.OrderByDescending(j => j.Job_ID).ToList().Where(x => x.Employeer_ID = EmpId);
    return View();
}