【发布时间】:2020-05-12 16:21:11
【问题描述】:
我是 ASP.NET MVC 的新手。我有一个名为Depts 的表,其中有列Dept_Id 和Dept_Name 我希望根据Dept_Id 找到Dept_Name,并将此值设置为另一个int 类型的变量。
var did = db.Depts.SingleOrDefault(z => z.Dept_Name == dept);
int deptId = Convert.ToInt32(did);
这样做之后,我得到了错误
无法将“System.Data.Entity.DynamicProxies.Dept_34CEB454D725BAF574CE929243347C1BAB865FAF84BBDFEBF96CE2DE758CAFF0”类型的对象转换为“System.IConvertible”类型。
请帮忙,谢谢。
【问题讨论】:
-
SingleOrDefault给出对象,可能你应该选择属性 DepartementId 并将其转换为 int。 -
您正在取回一个
Dept对象(或一些代理对象)并尝试将其转换为int,这似乎是合乎逻辑的,它会失败。您是否尝试捕获Dept的属性? -
@Sajid,@D Stanley,我已经更新了我的问题,如果我不清楚,我很抱歉,我在这里还是很新的。感谢您的意见。
-
如果
dept是部门名称,尝试获取部门 id :db.Depts.SingleOrDefault(z => z.Dept_Name == dept)?.Dept_Id;并使用 [int.TryParse] (docs.microsoft.com/en-us/dotnet/api/…) 解析字符串 int 并避免异常。 -
@Sajid,这对我有用!非常感谢。
标签: c# sql-server asp.net-mvc