【发布时间】:2020-10-07 12:25:10
【问题描述】:
我正在尝试获取某些数据库值并将它们存储在数据表中。之后,我将应用 linq 按所有带有帐号的数据进行分组。我将最终结果存储在以下类类型的列表中-
class ListItems
{
public string accountNumbers
{
get;
set;
}
public string itemNumbers
{
get;
set;
}
}
我的代码是:
List<ListItems> accounts = new List<ListItems>();
public void GetItems(int ID1, int ID2)
{
con = new SqlConnection(connection);
SqlCommand cmd = new SqlCommand();
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = "sp_FetchItems";
cmd.Parameters.AddWithValue("@id1", ID1);
cmd.Parameters.AddWithValue("@id2", ID2);
cmd.Connection = con;
SqlDataAdapter adp = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();
adp.Fill(dt);
accounts = from result in dt.AsEnumerable()
group result by result.Field<string>("accountNumber");
}
我收到以下错误
不能隐式转换类型 'System.Collections.Generic.IEnumerable
>' 到 'System.Collections.Generic.List
上线
accounts = from result in dt.AsEnumerable()
group result by result.Field<string>("accountNumber");
我什至尝试使用 ToList() 转换此表达式,但它也不起作用。
【问题讨论】:
-
问题不在于 IEnumerable => 列表,而是您的泛型类也不兼容。如果不知道您的数据行中有什么,则无法回答
-
您要达到什么目的 - 每多行一个
ListItems?如果是这样,属性可能应该是不同的类型、数组或IEnumerable<string>,而不仅仅是string。 -
如果你想要从 ADO 返回的对象,为什么不使用ORM like Dapper?
-
我无法理解你的问题。您是在问我的数据表中存储了哪些值?
-
@RicardoPeres 在我的数据库中,我的表存储了一个帐号,对应于我有很多项目。我只是获取它们并存储在数据表中。我现在想按这些项目及其各自的帐号进行分组,并将结果存储在我的班级类型的列表中。
标签: c# linq linq-to-sql ado.net