C# 如何从字符串执行存储过程
所以,我试图从字符串执行一个存储过程,以获得广泛的数据,但我得到一个 数据读取器有多个字段。多个字段对于EDM基元或枚举类型无效 我可能如何执行存储过程C# 如何从字符串执行存储过程,c#,entity-framework,asp.net-web-api,C#,Entity Framework,Asp.net Web Api,所以,我试图从字符串执行一个存储过程,以获得广泛的数据,但我得到一个 数据读取器有多个字段。多个字段对于EDM基元或枚举类型无效 我可能如何执行存储过程 public class CarBLL { public static string GetCar(string carnumberxx, string authTicketxx) { using (var context = new SindalDBEntities()) {
public class CarBLL
{
public static string GetCar(string carnumberxx, string authTicketxx)
{
using (var context = new SindalDBEntities())
{
var doerTicket = "0x0100000067294c938207c9e5e0cb6b98ddc4edd9464bc14e68b59cbc73c9dc559c5d43ad9b3705d1720a52542e0220b7df11b2e4bd913d873b1aa18c";
var stamdata = "G0057";
String sql =
"SET NOCOUNT ON; " +
"EXEC [file].[usp_getCar] " +
"@p_CarNumber= '" + stamdata + "', " +
"@p_DoerTicket= '" + doerTicket + "' ";
List<SqlParameter> sqlParams = new List<SqlParameter>();
sqlParams.Add(new SqlParameter("CarNumber", System.Data.SqlDbType.VarChar, 100, stamdata));
sqlParams.Add(new SqlParameter("DoerTicket", System.Data.SqlDbType.VarChar, 100, doerTicket));
return context.Database.SqlQuery<string>(sql).FirstOrDefault<string>();
}
}
}
}
我得到一份工作
其他信息:数据读取器与指定的“SindalDbModel.usp\u getCar\u结果”不兼容。“ID1”类型的成员在数据读取器中没有同名的对应列
最好将
usp\u getCar
存储过程导入DbContext。看这个
在这种情况下,您的SindalDBEntities
中将有一个强类型方法。因此,您可以直接执行它:
return context.GetCar(stamdata, doerTicket).FirstOrDefault();
你的标签都错了。是不是一个用Entityy和C#制作的web api?老实说,如果你只搜索实体框架存储过程,你会得到你想要的答案。相信我,我在过去的两天里一直在搜索一个解决方案,但我发现没有一个是有效的,所以我创建了它。我尝试过,但无法让它工作在这个函数中,我不使用空1的参数(p_ID),这就是为什么我尝试使用string来排除它
return context.GetCar(stamdata, doerTicket).FirstOrDefault();