Estoy buscando implementar algunas formas más agradables de usar List en un par de aplicaciones en las que estoy trabajando. Mi implementación actual se ve así.¿Cuál es una forma mejor y más limpia de usar List <T>
MyPage.aspx.cs
protected void Page_Load(object sender, EventArgs e)
{
BLL.PostCollection oPost = new BLL.PostCollection();
oPost.OpenRecent();
rptPosts.DataSource = oArt;
rptPosts.DataBind();
}
BLL Clase (s)
public class Post
{
public int PostId { get; set; }
public string PostTitle { get; set; }
public string PostContent { get; set; }
public string PostCreatedDate { get; set; }
public void OpenRecentInitFromRow(DataRow row)
{
this.PostId = (int) row["id"];
this.PostTitle = (string) row["title"];
this.PostContent = (string) row["content"];
this.PostCreatedDate = (DateTime) row["createddate"];
}
}
public class PostCollection : List<Post>
{
public void OpenRecent()
{
DataSet ds = DbProvider.Instance().Post_ListRecent();
foreach (DataRow row in ds.Tables[0].Rows)
{
Post oPost = new Post();
oPost.OpenRecentInitFromRow(row);
Add(oPost);
}
}
}
Ahora bien, aunque esto está funcionando muy bien, me pregunto si hay alguna manera de mejorar y hacer que sea más limpio que tener que usar las dos clases diferentes hace algo que creo que puede suceder en una sola clase o utilizando una interfaz.
¿Hay alguna forma de que su capa DB devuelva algo que no sea una tabla (por ejemplo, usar un lector de datos para llenar su lista de objetos allí)? – Paddy
Esto podría ser una preferencia personal, pero también eliminaría la notación húngara del código de la página. – Paddy
@Paddy - ¡Estoy trabajando en eso! Solo lo uso para cosas como repetidores donde me ayuda a recordar. Pero todo está desapareciendo lentamente del código. –