【发布时间】:2021-03-22 07:48:37
【问题描述】:
我在 EF 中使用了数据库优先模式。我需要您的帮助,因为我在尝试运行此代码时遇到了问题:
private void btnSearch_Click(object sender, EventArgs e)
{
string SNumber = txtSearchByNum.Text;
var qSearchByTypeText = database.tblNote.SqlQuery("select * From tblNote Where fNumber=@t0", SNumber).ToList();
}
我收到此错误:
System.Data.Entity.dll 中出现“System.Data.SqlClient.SqlException”类型的未处理异常
附加信息:必须声明标量变量“@t0”。
这可能是由于 ٍEntity Framework 版本的原因吗?
【问题讨论】:
-
您使用的是哪个版本的实体框架?
-
为什么要使用 sql 字符串来完成 Entity Framework 能够做的事情?
var qSearchByTypeText = database.tblNote.Where(note => note.fNumber == SNumber).ToList(); -
实体框架6.0.0
-
这不是 EF 的问题。您必须在命令中声明标量变量
"@t0".。 -
最简单的答案是不要...正如 Andrew 指出的那样,您完全忽略了使用 ORM 的意义。 EF 和 Linq 将为您解决所有这些问题。鉴于您的示例,绝对没有理由编写 SQL。
标签: c# entity-framework entity-framework-6 db-first