Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# ASP.NET MVC数据存储库_C#_Sql_Asp.net Mvc - Fatal编程技术网

C# ASP.NET MVC数据存储库

C# ASP.NET MVC数据存储库,c#,sql,asp.net-mvc,C#,Sql,Asp.net Mvc,我收到一条错误消息,上面说: “不存在来自对象类型的映射 f__匿名类型6`1[[System.Int32,mscorlib,Version=4.0.0, 区域性=中性,PublicKeyToken=b77a5c561934e089]]到已知的托管 提供程序本机类型。“ 公共列表GetCategoryProducts(int catID) { 字符串sql=@“选择p.ProductID、p.ItemName、p.ImageName 来自产品p,产品类别pc 其中p.ProductID=pc.P

我收到一条错误消息,上面说:

“不存在来自对象类型的映射 f__匿名类型6`1[[System.Int32,mscorlib,Version=4.0.0, 区域性=中性,PublicKeyToken=b77a5c561934e089]]到已知的托管 提供程序本机类型。“

公共列表GetCategoryProducts(int catID)
{
字符串sql=@“选择p.ProductID、p.ItemName、p.ImageName
来自产品p,产品类别pc
其中p.ProductID=pc.ProductID
和pc.CategoryID=@catID
按p.ItemName排序”;
List products=db.products.SqlQuery(sql,new{catID}).ToList();
退货产品;
}

我不知道为什么会出现此错误

您应该做两件事a)更改查询的返回类型,
SqlQuery
b)将参数
catID
传递给查询:

var products = db.Products
                 .SqlQuery<Product>(sql,new SqlParameter("catID", catID))
                 .ToList();

您没有为
类别ID设置任何值。这是
SqlQuery
方法的工作,如果您传递一个,它将处理此问题。

您应该做两件事a)更改查询的返回类型,
SqlQuery
b)将参数
catID
传递给您的查询:

var products = db.Products
                 .SqlQuery<Product>(sql,new SqlParameter("catID", catID))
                 .ToList();

您没有为
类别ID设置任何值。这是
SqlQuery
方法的工作,只要您通过一个,它就会处理这个问题。

这在
SqlQuery
方法帮助中进行了解释。但是为什么还要麻烦SQL呢?这是一个非常简单的LINQ到实体查询,您没有使用ORM的优点。请不要删除您以前的问题,并将其更改为新问题。创建一个新问题,或编辑您的问题以包含其他问题信息(保留旧问题)。通过删除该问题,您正在阻止其他任何人从您的问题中获益。同样令人困惑的是,为什么有些答案似乎没有解决当前的问题。这在
SqlQuery
methodhelp中有解释。但是为什么还要麻烦SQL呢?这是一个非常简单的LINQ到实体查询,您没有使用ORM的优点。请不要删除您以前的问题,并将其更改为新问题。创建一个新问题,或编辑您的问题以包含其他问题信息(保留旧问题)。通过删除该问题,您正在阻止其他任何人从您的问题中获益。同样令人困惑的是,为什么有些答案似乎没有解决当前的问题;要修复标量变量错误,现在我遇到了这个错误:从对象类型f_uuanonymoustype6`1[[System.Int32,mscorlib,Version=4.0.0.0,Culture=neutral,PublicKeyToken=b77a561934e089]]到已知的托管提供程序本机类型不存在映射。我添加了List products=db.products.SqlQuery(sql,new{catID}).ToList();要修复标量变量错误,现在我遇到这个错误:不存在从对象类型f_uuAnonymousType6`1[[System.Int32,mscorlib,Version=4.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089]到已知托管提供程序本机类型的映射。
@"select p.ProductID, p.ItemName, p.ImageName
from Product p, ProductCategory pc
where p.ProductID = pc.ProductID
and pc.CategoryID = @catID 
order by p.ItemName"