Ho dati binari nel mio database che dovrò convertire in bitmap ad un certo punto. Stavo pensando se sia appropriato o meno utilizzare un repository e farlo lì. Il mio consumatore, che è un livello di presentazione, utilizzerà questo repository. Ad esempio:
// This is a class I created for modeling the item as is.
public class RealItem
{
public string Name { get; set; }
public Bitmap Image { get; set; }
}
public abstract class BaseRepository
{
//using Unity (http://unity.codeplex.com) to inject the dependancy of entity context.
[Dependency]
public Context { get; set; }
}
public calss ItemRepository : BaseRepository
{
public List<Items> Select()
{
IEnumerable<Items> items = from item in Context.Items select item;
List<RealItem> lst = new List<RealItem>();
foreach(itm in items)
{
MemoryStream stream = new MemoryStream(itm.Image);
Bitmap image = (Bitmap)Image.FromStream(stream);
RealItem ritem = new RealItem{ Name=item.Name, Image=image };
lst.Add(ritem);
}
return lst;
}
}
Questo è un modo corretto di utilizzare il modello di repository? Sto imparando questo modello e ho visto molti esempi online che stanno usando un repository ma quando ho guardato il loro codice sorgente ... per esempio:
public IQueryable<object> Select
{
return from q in base.Context select q;
}
Come puoi vedere, nessun comportamento viene aggiunto al sistema dal loro approccio, quindi ero confuso dal fatto che forse il repository fosse un'altra cosa e ho sbagliato tutto. Alla fine ci dovrebbero essere ulteriori vantaggi nell'usarli correttamente?