如何创建一个包含查询模型列表的模型?

本文关键字:模型 查询 包含 列表 何创建 创建 一个 | 更新日期: 2023-09-27 18:14:55

我试图创建一个包含实体列表的实体。下面是我的代码:

internal IEnumerable<Project> GetProjects(int customerId)
{
    string query = @"SELECT * 
                     FROM Project
                     INNER JOIN MediaAsset ON Project.CustomerId = MediaAsset.CustomerId
                     WHERE MediaAsset.CustomerId = @CustomerID";
    List<Project> projects = new List<Project>();
    using (SqlConnection connection = new SqlConnection(ConfigurationManager.ConnectionStrings["connection"].ConnectionString))
    {
        using (SqlCommand command = new SqlCommand(query, connection))
        {
            connection.Open();
            command.Parameters.AddWithValue("@CustomerID", customerId);
            using (varreader = command.ExecuteReader())
            {
                while (reader.Read())
                {
                    projects.Add(new Project
                    {
                        Assets = new List<MediaAsset>()//<--list of assets nested in Project
                        {
                              //right here.. how do i create the list of MediaAssets?
                        },
                        CustomerId = (int)reader["CustomerId"],
                        ProjectId = (int)reader["ProjectId"],
                        ProjectName = (string)reader["ProjectName"],
                        UserID = (int)reader["UserId"]
                    });
                }
            }
        }
    }
    return projects;
}

无论如何要这样完成它?我也一直在研究Linq-to-SQL,但我已经有很多方法,我想保持代码一致。

如何创建一个包含查询模型列表的模型?

考虑使用Dapper。您将仍然使用SQL语句,但是您将获得从接收到的数据到实体对象的自动转换。