Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/297.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/17.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# 正在尝试将我的模型转换为IEnumerable<;模型>;_C#_Asp.net Mvc_Linq_Asp.net Mvc 4_Ienumerable - Fatal编程技术网

C# 正在尝试将我的模型转换为IEnumerable<;模型>;

C# 正在尝试将我的模型转换为IEnumerable<;模型>;,c#,asp.net-mvc,linq,asp.net-mvc-4,ienumerable,C#,Asp.net Mvc,Linq,Asp.net Mvc 4,Ienumerable,在我的MedicalProductController中,我试图将名为“product”的MedicalProduct(模型类)转换为IEnumerable,以便将其传递到GetMedicalProductViewModelList,该列表将返回一个IEnumerable(viewModel类) 我试图将SQL调用保持在最低限度。根据其他stackoverflow成员的建议 但是在我的MedicalProductController类中,“product”无法变成IEnumerable 医疗产品

在我的
MedicalProductController
中,我试图将名为“product”的
MedicalProduct
(模型类)转换为
IEnumerable
,以便将其传递到
GetMedicalProductViewModelList
,该列表将返回一个
IEnumerable
(viewModel类)

我试图将SQL调用保持在最低限度。根据其他stackoverflow成员的建议

但是在我的
MedicalProductController
类中,“product”无法变成
IEnumerable

医疗产品控制器
公共类MedicalProductController:控制器
{
私有MvcMedicalStoreDb_db=新的MvcMedicalStoreDb();
//为简洁起见,省略了其他CRUD代码。
// =============
//编辑HttpGet
// =============
公共操作结果编辑(int id=0)
{
MedicalProduct product=\u db.Products.Find(id);
如果(产品==null)
{
返回HttpNotFound();
}
var productList=作为IEnumerable的产品;
var viewModelList=GetMedicalProductViewModelList(productList);
返回视图(viewModelList);
}
// =============
//编辑HttpPost
// =============
[HttpPost]
[ValidateAntiForgeryToken]
公共行动结果编辑(医疗产品)
{
if(ModelState.IsValid)
{
_db.Entry(product.State=EntityState.Modified;
_db.SaveChanges();
返回操作(“索引”);
}
var productList=作为IEnumerable的产品;
var viewModel=GetMedicalProductViewModelList(productList);
返回视图(viewModel);
}
// =====================
//映射器类助手
// =====================
公共IEnumerable GetMedicalProductViewModelList(IEnumerable productList)
{
var brandList=_db.Brands.ToArray();
var mapper=新的MedicalProductMapper();
返回mapper.MapMedicalProductViewModel(productList,brandList);
}
为了以防万一,下面是mapping类:

医学产品映射器
公共类MedicalProductMapper
{
// =====================
//模型到视图模型
// =====================
公共IEnumerable映射MedicalProductViewModel(IEnumerable medicalProductList、IEnumerable brandList)
{
var brandSelectListItem=brandList.Select(b=>new SelectListItem()
{
Text=b.名称,
Value=b.名称
});
var viewModelList=medicalProductList.Select(p=>new MedicalProductViewModel()
{
BrandID=p.BrandID,
BrandName=brandList.SingleOrDefault(b=>b.ID==p.BrandID).Name,
BrandSelectListItem=BrandSelectListItem,
ID=p.ID,
价格=p.价格,
Name=p.Name
});
返回viewModelList;
}
// =====================
//视图模型到模型
// =====================
公共医疗产品映射医疗产品(医疗产品视图模型VM)
{
var模型=新医疗产品()
{
Name=VM.Name,
Price=VM.Price,
BrandID=VM.BrandID
};
收益模型;
}
}
而不是

var productList = product as IEnumerable<MedicalProduct>;
var productList=产品为IEnumerable;
试一试

var productList=新列表{product};
如果不是
IEnumerable
,则不能强制转换为
IEnumerable
,我在本例中所做的是首先创建一个类型为
MedicalProduct
的新列表,然后将产品添加到列表中

列表是实现IEnumerable而不是

var productList = product as IEnumerable<MedicalProduct>;
var productList=产品为IEnumerable;
试一试

var productList=新列表{product};
如果不是
IEnumerable
,则不能强制转换为
IEnumerable
,我在本例中所做的是首先创建一个类型为
MedicalProduct
的新列表,然后将产品添加到列表中

List是实现IEnumerable的类型之一

var productList = product as IEnumerable<MedicalProduct>;
var productList = new List<MedicalProduct> { product };