我想要一个包含我在我的软件中代表的名词的所有其他细节的类。
public class Customer
{
public int Id { get; set; }
public string Name { get; set; }
public List<Note> Notes { get; set; }
}
public class Note
{
public string Notes { get; set; }
public DateTime DateAdded { get; set; }
}
我使用SqlCommand从入口点或按钮点击两个不同的存储过程中获取数据 - 这没关系,下面是一个例子....
static List<Note> notes = new List<Note>();
static string conString = "Server=localhost;Database=MyDb;Trusted_Connection=True;";
SqlConnection con = new SqlConnection(conString);
SqlCommand cmd = new SqlCommand("sp_GetCustomerNotes", con);
cmd.CommandType = CommandType.StoredProcedure;
con.Open();
cmd.Parameters.Add("@CustomerId", SqlDbType.UniqueIdentifier);
cmd.Parameters["@CustomerId"].Value = 1;
SqlDataReader reader = cmd.ExecuteReader();
while (reader.Read())
{
Note note = new Note(
(string)reader["Notes"].ToString(),
DateTime.Parse(reader["DateAdded"].ToString())
);
notes.Add(note);
}
这都是非常标准的东西......
这是我的问题。获取Customer对象的数据后,我希望仅在单个类/对象中包含来自我的Note对象的所有注释:Customer。那我该怎么做呢?
为Customer表执行相同的代码我尝试使用foreach循环无效...
while (reader.Read())
{
// removed because this is the same code as above with a diff sproc
Customer customer = new Customer();
customer.Name = (string)reader["Name"];
}
foreach (Note note in notes)
customer.Notes = note;
// ERROR HERE -->
Error 4 Cannot implicitly convert type 'Note' to 'System.Collections.Generic.List<Note>'
所以我有点不清楚如何做到这一点。
请帮助。
答案 0 :(得分:0)
如果你想为Notes添加注释(如果它是List&lt; Notes&gt;的集合),你可以这样添加:
customer.Notes.Add(note);
答案 1 :(得分:0)
所以我发现即使已经实例化了Customer对象,也需要创建Notes类,它是Customer类的成员,因此我创建了一个方法调用来获取笔记集合。
首先,我创建了一个获取笔记的函数....
static List<Note> GetCustomerNotes()
{
Customer c = new Customer();
c.Notes = new List<Note>();
foreach (Note note in notes)
c.Notes.Add(note);
return c.Notes;
}
然后我在我重载的构造函数中调用了这个函数......
while (reader.Read())
{
Customer customer = new Customer(
(string)reader["Name"],
GetCustomerNotes()
);
}