0

我在 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 版本造成的吗?

4

2 回答 2

0

您需要传递如下参数:

var qSearchByTypeText = database.tblNote.SqlQuery("select * From tblNote Where fNumber=@t0", new SqlParameter("@t0", SNumber)).ToList();
于 2020-12-10T21:35:39.283 回答
0

如果您要求使用 EF6.0“使用”语句来包含创建并返回行列表的 EF/ORM 查询,我会这样做:

var qSearchByTypeText = new List<Note>();  //where "Note" is a data structure that looks like a row of columns in "tblNote".

using (var myDbEntity = new [your 'Database First' Entity name]())
{
   //then your query
   qSearchByTypeText = (from n in myDBEntity.tblNotes where n.fNumber == SNumber select n).ToList();

}
于 2020-12-30T05:38:42.470 回答