我有一个错误:
(无法将类型'shenoy webapi.Models.PartIndex'隐式转换为'System.Collections.Generic.IEnumerable'。存在显式转换(是否缺少强制转换?)shenoywebapi D:\ shenoystudio \ shenoywebapi \ Controllers \ RateController .cs 69有效)
[Route("api/Rate/getproductrate")]
public IEnumerable<Rate> GetProductRate()
{
var list = new List<Rate>();
var dsRate = SqlHelper.ExecuteDataset(AppDatabaseConnection, CommandType.StoredProcedure, 0, "GetProductRates");
if (dsRate.Tables[0].Rows.Count > 0)
{
foreach (DataRow row in dsRate.Tables[0].Rows)
{
list.Add(new Rate
{
Id = Convert.ToInt64(row[0]),
SerialNumber = row[1].ToString(),
ProductName = row[2].ToString(),
Unit = row[3].ToString(),
PartIndex = new PartIndex { Series = row[4].ToString() },
});
}
}
return list;
}
这是我的模特
namespace shenoywebapi.Models
{
public class Rate
{
public long Id { get; set; }
public DateTime wefDate { get; set; }
public string SerialNumber { get; set; }
public string ProductName { get; set; }
public string Unit { get; set; }
public long Rates { get; set; }
public IEnumerable<PartIndex> PartIndex { get; set; }
}
}
严重性代码描述项目文件行抑制状态 错误CS0266无法将类型'shenoywebapi.Models.PartIndex'隐式转换为'System.Collections.Generic.IEnumerable'。存在显式转换(是否缺少强制转换?)shenoywebapi D:\ shenoystudio \ shenoywebapi \ Controllers \ RateController.cs 69有效
答案 0 :(得分:0)
在Rate类中,您将属性定义为:
public IEnumerable<PartIndex> PartIndex { get; set; }
在您的函数中,您尝试将其分配为:
PartIndex = new PartIndex { Series = row[4].ToString() }
因此,您尝试分配一个对象而不是IEnumerable。尝试将分配内容包装在new List() {...}
中以对其进行修复。
该错误也很清楚地告诉您:
无法将类型'PartIndex'隐式转换为 'System.Collections.Generic.IEnumerable'
这意味着它不能自动将单个对象转换为仅包含该对象的IEnumerable。您必须手动执行。
答案 1 :(得分:0)
是这行
PartIndex = new PartIndex { Series = row[4].ToString() }
在您的模型中PartIndex
必须为IEnumerable<PartIndex>
,必须为
PartIndex = new List<PartIndex>() { new PartIndex() {Series = row[4].ToString()} }
答案 2 :(得分:0)
第一个IEnumerable<PartIndex>
可以由List<PartIndex>
创建
因此,创建IEnumerable就像
PartIndex = new List<PartIndex>();
并插入您的元素,如:
PartIndex = new List<PartIndex>() { new PartIndex() {Series = row[4].ToString()} }
最后,您可以看到它,它谈论IEnumrable和List。 IEnumerable vs List - What to Use? How do they work?