![Łukasz Stychoń](https://static.goldenline.pl/user_photo_basic.jpg)
Łukasz Stychoń Just me
Łukasz Stychoń Just me
konto usunięte
Łukasz Stychoń:Moim zdaniem to czego potrzebujesz to zwykłe repozytorium - abstrakcja w postaci interfejsu z metodami dodaj/usuń/pobierz oraz oddzielne implementacje dla innych struktur. Implementacja sprowadzi się pewno do wrappera, który zadaje query na DataContext i robi projekcję na ustalone obiekty DTO.
Czy dałoby się przekazywać jakoś data context do tego modułu w taki sposób, żeby go tam obsługiwać.
public interface IOrderRepository {
IList<DTOOrder> GetOrders(int pageNumber,int pageSize);
}
public sealed class OrderRepository : IDisposable, IOrderRepository {
readonly SomeDataContext dc;
public OrderRepository(string connectionString) {
DataLoadOptions _dlo = new DataLoadOptions();
this.dc = new SomeDataContext(connectionString) {
ObjectTrackingEnabled = false, LoadOptions = _dlo
};
}
void IDisposable.Dispose() {//pamietaj o wywolaniu
dc.Dispose();
}
IList<DTOOrder> IOrderRepository.GetOrders(int pageNumber,int pageSize) {
return dc.someTableValuedSqlFunction("some constant")
.Select(a => new DTOOrder {
OrderId = a.OrderId,
OrderDate = a.OrderDate
})
.Skip((pageNumber-1) * pageSize)
.Take(pageSize) .ToList();
}
}
Łukasz Stychoń Just me
public class DTOOrder
{
public DTOOrder() { }
public int OrderId { get; set; }
public DateTime OrderDate { get; set; }
}
konto usunięte
Łukasz Stychoń:jak najbardziej - same DTO i nic więcej (ale dodaj sealed)
No chyba właśnie o coś takiego mi chodzi. Ale jeszcze
dopytam. Te obiekty DTO to po prostu klasy z właściwościami:
konto usunięte
0. Tworzysz DataContext z ObjectTrackingEnabled = trueHaha :D Jaka numeracja :D
1. Tworzysz nowe entity (to wygenerowane przez designer Linq2SQL). > Wystarczy odpowiednia projekcja do IEnumerable<TEntity>
2. dc.InsertAllOnSubmit
3. dc.SubmitChanges
konto usunięte
Karim Agha:
Haha :D Jaka numeracja :D
konto usunięte
Krzysztof Kozłowski:no w każdym razie na pewno w VB/Delphi nie programuję:)
Karim Agha:
Haha :D Jaka numeracja :D
A co, od razu widać, że prawdziwy programista :)
konto usunięte
maciek kański:
Krzysztof Kozłowski:no w każdym razie na pewno w VB/Delphi nie programuję:)
Karim Agha:
Haha :D Jaka numeracja :D
A co, od razu widać, że prawdziwy programista :)
konto usunięte
Łukasz Stychoń:
Hej, mam takie pytanie. Mam jeden moduł w aplikacji, który będzie wykorzystywany także w innych aplikacjach. Jego zadaniem są proste operacje (insert, update) na tabeli zawierającej dane adresowe. Problem w tym, że każda aplikacją ma swoją bazę z własną tabelą (co prawda o zbliżonej strukturze). Chciałbym do tego wykorzystać Linq to sql lub Ado.net entity data model.
konto usunięte
nie ważne w czym, grunt żeby robić to dobrzeEh, kontekstowo chodziło o to czy liczymy od zera czy jedynki jak w VB/Delphi i zapewne innych.
potworki można bowiem tworzyć w dowolnym języku - nieprawdaż?
konto usunięte
maciek kański:
nie ważne w czym, grunt żeby robić to dobrzeEh, kontekstowo chodziło o to czy liczymy od zera czy jedynki jak w VB/Delphi i zapewne innych.
potworki można bowiem tworzyć w dowolnym języku - nieprawdaż?
A nawet jak jakiś język programowania jest badziewny - bo niektóre są - to na pewno taki pogląd nie przenosi się na programistę. Nie uosabiaj się z używanym językiem:)
Michał K. .NET Developer
Przemysław R.:Spróbuj to zrobić w Brainfucku. ;-p
potworki można bowiem tworzyć w dowolnym języku - nieprawdaż?
konto usunięte
maciek kański:
W DataContext siedzi połączenie do bazy danych - pamiętaj o zamknięciu (czyli Dispose)
konto usunięte
Krzysztof Kozłowski:
maciek kański:
W DataContext siedzi połączenie do bazy danych - pamiętaj o zamknięciu (czyli Dispose)
a tak przy okazji to lepiej w tego typu klasie tworzyć nowy kontekst do bazy i potem go zwalniać czy lepiej tylko przekazać kontekst utworzony wcześniej dla całej aplikacji?
konto usunięte
Łukasz Stychoń:
Hej, mam takie pytanie. Mam jeden moduł w aplikacji, który będzie wykorzystywany także w innych aplikacjach. Jego zadaniem są proste operacje (insert, update) na tabeli zawierającej dane adresowe. Problem w tym, że każda aplikacją ma swoją bazę z własną tabelą (co prawda o zbliżonej strukturze). Chciałbym do tego wykorzystać Linq to sql lub Ado.net entity data model.
Łukasz Stychoń Just me
konto usunięte
Łukasz Stychoń:>
PS. Jak w Linq to sql zaktualizować entity jakieś tabeli. Powiedzmy, że doszły mi nowe pola, zmieniły się typy pól… Jak te zmiany odzwierciedlić w DataContext? Trzeba usunąć obiekt tej tabeli i dodać od nowa?
Łukasz Stychoń Just me
konto usunięte
Następna dyskusja: