C# 创建关系类对象
我有一个名为Products and Categories的表,其中一个Products表的行包含如下数据:C# 创建关系类对象,c#,sql-server-2008,ado.net,C#,Sql Server 2008,Ado.net,我有一个名为Products and Categories的表,其中一个Products表的行包含如下数据: ProductId,ProductName,CategoryId 类别包括 CategoryId,CategoryInfo 因此,我使用类似ado.net的ExecudeReader()获取行 List<ProductEntity> lst = new List<ProductEntity>(); using (SqlConnection connection
ProductId,ProductName,CategoryId
类别包括
CategoryId,CategoryInfo
因此,我使用类似ado.net的ExecudeReader()
获取行
List<ProductEntity> lst = new List<ProductEntity>();
using (SqlConnection connection = new SqlConnection(constr))
{
SqlCommand command = connection.CreateCommand();
command.CommandText = "select ProductId,ProductName,CategoryId from Products";
connection.Open();
using (SqlDataReader reader = command.ExecuteReader())
{
while (reader.Read())
{
lst.Add(new ProductEntity()
{
ProductId = int.Parse(reader[0].ToString()),
ProductName= reader[1].ToString(),
CategoryId=int.Parse(reader[2].ToString())
});
}
}
}
List lst=new List();
使用(SqlConnection=newsqlconnection(constr))
{
SqlCommand=connection.CreateCommand();
command.CommandText=“从产品中选择ProductId、ProductName、CategoryId”;
connection.Open();
使用(SqlDataReader=command.ExecuteReader())
{
while(reader.Read())
{
lst.Add(新产品实体()
{
ProductId=int.Parse(读取器[0].ToString()),
ProductName=reader[1]。ToString(),
CategoryId=int.Parse(读取器[2].ToString())
});
}
}
}
但我也希望不使用另一个ExecuteReader()
就可以从Categories表中获取categorinfo。我可以为产品和类别创建一个实体类吗?如果可以,我如何创建?或者存在其他最佳做法?将查询更改为:
SELECT p.ProductId, p.ProductName, p.CategoryId, c.CategoryInfo
FROM Products p
JOIN Categories c ON c.CategoryId = p.CategoryId
并获取CategoryInfo
作为查询返回的第四个元素:
CategoryInfo= reader[3].ToString()
为了清楚起见-您必须在
ProductEntity
类中具有CategoryInfo
属性。当用作命令文本时cmdText
具有什么值?如果可能,请使用联接