Ich habe Binärdaten in meiner Datenbank, die ich irgendwann in Bitmap konvertieren muss. Ich habe darüber nachgedacht, ob es sinnvoll ist, ein Repository zu verwenden und es dort zu tun. Mein Consumer, der eine Präsentationsebene ist, wird dieses Repository verwenden. Zum Beispiel:Verwendung des Repository zwischen EF-Modell und Code-Consumer
// 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;
}
}
Ist dies eine korrekte Methode, das Repository-Muster zu verwenden? Ich bin dieses Muster lernen, und ich habe viele Beispiele online gesehen, dass ein Repository verwenden, aber wenn ich an ihrem Quellcode sehe ... zum Beispiel:
public IQueryable<object> Select
{
return from q in base.Context.MyItems select q;
}
wie man kann fast kein Verhalten zu sehen ist hinzugefügt, um das System durch ihren Ansatz mit Ausnahme der versteckten Datenzugriffsabfrage, so war ich verwirrt, dass Repository möglicherweise etwas anderes ist und ich habe alles falsch. Am Ende sollte es zusätzliche Vorteile geben, sie richtig zu benutzen?
Update: Wie sich herausstellte, benötigen Sie keine Repositories, wenn Sie vor dem Versand nichts mehr an Daten machen müssen, aber warten Sie! keine Abstraktion bei LINQ-Abfrage? auf diese Weise muss der Client die Abfrageanweisungen für uns bereitstellen, die ein wenig unsicher und schwer zu validieren sind. Vielleicht stellt das Repository also auch eine Abstraktion bei Datenabfragen bereit? Wenn das der Fall ist, dann ist das Vorhandensein eines Repositories immer ein essentieller Bedarf in der Projektarchitektur !! jedoch Diese Abstraktion kann mit gespeicherten SQL-Prozeduren bereitgestellt werden. Was ist die Wahl, wenn beide Optionen verfügbar sind?
überprüfen Sie bitte mein Update. Vielen Dank. – jim
sehe meine aktualisierte Antwort – MikeSW