gpt4 book ai didi

c# - 参数类型 'Edm.String' 和 'Edm.Int32' 与此操作不兼容

转载 作者:行者123 更新时间:2023-11-30 14:49:24 24 4
gpt4 key购买 nike

我收到类似上面标签的错误,该错误将位于

的位置

return View(st.employees.Find(id));

只有上面的地方,任何人都可以帮助我吗!我的代码是

     namespace StartApp.Controllers
{
public class EmployController : Controller
{
StartEntities st = new StartEntities();
//List
public ActionResult List()
{
return View(st.employees.ToList());
}
//Details
public ActionResult Details(int id = 0)
{
return View(st.employees.Find(id));
}
//Create
public ActionResult Create()
{
return View();
}


[HttpPost,ValidateAntiForgeryToken]
public ActionResult Create(employee e)
{
using(st)
{
st.employees.Add(e);
try
{
st.SaveChanges();
}
catch
{
System.Diagnostics.Debug.WriteLine("Here is an error");
}
}
return RedirectToAction("List");
}
//edit
public ActionResult Edit(int id = 0)
{

return View(st.employees.Find(id));

}

[HttpPost,ValidateAntiForgeryToken]
public ActionResult Edit(employee e)
{
st.Entry(e).State = EntityState.Modified;
st.SaveChanges();
return RedirectToAction("List");
}
//Delete
public ActionResult Delete(int id = 0)
{
return View(st.employees.Find(id));
}
[HttpPost,ActionName("Delete")]
public ActionResult Delete_conf(int id)
{
employee emp = st.employees.Find(id);
st.employees.Remove(emp);
st.SaveChanges();
return RedirectToAction("List");
}

}

谁能帮我改正这个错误!

最佳答案

当您的实体主键是类型 A 而您将一个不是类型 A 的变量传递给 Find 方法时,通常会发生此异常。

来自official documentation Find 方法,可能会抛出以下异常

InvalidOperationException

Thrown if the types of the key values do not match the types of the key values for the entity type to be found.

确保在调用 Find 方法时使用相同类型的变量。

在您的代码中,您将整数变量传递给 Find 方法。从错误我相信你的实体类主键不是 int 类型。可能是 Guid 类型,在这种情况下,请确保将有效的 Guid 值传递给 Find 方法。

您可以打开 edmx 文件并查看 key 的类型,并确保将相同的类型传递给 Find 方法。

只需右键单击您的 edmx 文件中的实体并选择属性。

enter image description here

关于c# - 参数类型 'Edm.String' 和 'Edm.Int32' 与此操作不兼容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38832906/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com