Generyczne odata, generycznie tworzone tabele w modułach

Generyczne odata, generycznie tworzone tabele w modułach
BL
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 68
0

Cześć,
Czy ktoś z Was może się orientuje czy istnieje jakiś sprawdzony sposób na generyczne przygotowanie grida w tabeli w module www? Mam na myśli że nie szyjemy aplikacji na miarę typu mamy tabelę lub indexed view z 5cioma kolumnami podpinamy Odata, żeby działało filtrowanie po każdej kolumnie, sortowanie, paginacja, a jak chcemy dodać nową kolumnę to musimy na nowo generować modele i deployować nową wersję aplikacji, tylko chodzi mi o jakiś sposób w którym ktoś dodaje sobie nową kolumnę do View a api i front są w stanie to jakoś automatycznie ogarnąć, jest to możliwe do wykonania?

AdamWox
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Jastrzębie-Zdrój
  • Postów: 2180
0

Może TUTAJ coś cię nakieruje

BL
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 68
0

A czy w ogóle istnieje możliwość łączenia w OData kilku tabelek w jedno tak żeby działały operacje filtrowania, select, expand itp? Na chwile obecną sobie utworzyłem widok zmaterializowany i próbuję do niego podpiąć odata i zrobic paginacje + filtrowanie, ale na widokach raczej nie zadziała mi expand, bo chyba tam nie da rady podpiąć FK?

AdamWox
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Jastrzębie-Zdrój
  • Postów: 2180
0

Nie jestem orłem w OData. Troszkę liznąłem temat, bo myślałem, że to będzie rozwiązanie do mojego problemu, ale niestety nie było. Z tego co wiem to odpowiedź na twoje pytanie brzmi - i tak, i nie...

  1. NIE - jeśli chcesz mieć generyki i dynamiczny model
  2. TAK - jeśli skorzystasz z Entity Framework

Jedno wyklucza drugie, ale mogę się mylić. Moim zdaniem $expand nie zadziała na dynamicznym modelu, bo w modelu musisz zadeklarować FK

Kopiuj
public class Supplier
{
    [Key]
    public string Key {get; set; }
    public string Name { get; set; }
}
public class Category
{
    public int ID { get; set; }
    public string Name { get; set; }
    public virtual ICollection<Product> Products { get; set; }
}

public class Product
{
    public int ID { get; set; }
    public string Name { get; set; }
    public decimal Price { get; set; }

    [ForeignKey("Category")]
    public int CategoryId { get; set; }
    public Category Category { get; set; }

    [ForeignKey("Supplier")]
    public string SupplierId { get; set; }
    public virtual Supplier Supplier { get; set; }
}

Tak jak w tym przykładzie z dokumentacji Microsoftu

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.