Wpis z mikrobloga

Mam taką zagwozdkę.
W aktualnym projekcie mamy aplikację wpf oraz ms SQL w którym logikę opieramy na procedurach do których dostarczamy dokument XML oraz procedura zwraca w odpowiedzi dokument XML.
Zabieramy się powoli za API restowe żeby przenosić logikę na web, jednak na czas takiego przejścia potrzebujemy takie API RESTOWE połączyć z procedurami.
Mianowicie chodzi o wyzwalanie procedur z API. Utworzyłem taki testowy API projekt, jak powinna wyglądać najprostsza wersja DataContext ? W takim testowym projekcie nie mam żadnych Encji, jedynie chciał bym w kontrolerze odebrać XML, i przekazać go do procedury SQL ?
#programowanie #dotnet #web
  • 8
@Illidank: aktualnie pracujemy na xml'ach i dopiero będziemy się przenosić na jsony.
chodzi o to że procedura przyjmuje XML i zwraca XML .. jak to przekazać dodawałem do DataContext :
public DbSet SomeDBSet { get; set; }
potem w OnModelCreating
modelBuilder.Entity().HasNoKey();
i wywołanie :
await _dataContext.SomeModels.FromSqlRaw("EXEC nazwaProc {0} {1}", xmlIn, xmlOut).FirstOrDefaultAsync();
ale oczywiście wywala bo próbuje XmlDocument przełożyć na jakiś obiekt w bazie.
@Illidank: EF próbuje utworzyć model na podstawie klasy XmlDocument i w odpowiedzi uzyskuje.
The entity type 'XmlSchemaCompilationSettings' requires a primary key to be defined. If you intended to use a keyless entity type call 'HasNoKey()
także to jest zła ścieżka....
@Illidank: interesowało by mnie taie rozwiązanie jak na samym dole w linku który dołączyłeś :

var rowsAffected = context.Database.ExecuteSqlCommand("Update Students set FirstName = 'Bill' where StudentId = 1;");

gdzie pracują tak jak by na bazie a nie na encji.
Jednak w tym przypadku ExecuteSqlCommand nie zwraca danych (a ma zwrócić xml) tylko zwraca INT z liczbą zmienionych danych
@westsajd: Hmm tylko w Twoim rozwiązaniu dla każdego http req jest tworzone połączenie z bazą. Chciał bym wykorzystać potencjał jaki dają teraz te nowe frameworki z DI itd. A to najlepiej chyba rozwiązuje EF.