Witam
Potrzebuje pomocy, bo chcę stworzyć funkcjonalność w mojej aplikacji, która będzie polegała na dodawaniu nowych receptur do bazy danych. Miałem zamiar zrobić w taki sposób, że tworzysz nowy przepis, pisząc jego nazwę a potem dodajesz nowe wiersze z nazwą składnika i jego ilością potrzebną do stworzenia dania. Mam stworzony model, ale wiem jak zrobić logikę, aby pobierało nazwe i składniki i dodawało je do bazy danych i każdy rekord w bazie danych to nazwa przepisu i jeden składnik z ilością.
- Rejestracja:ponad 4 lata
- Ostatnio:ponad 4 lata
- Postów:14

- Rejestracja:prawie 14 lat
- Ostatnio:prawie 3 lata
- Postów:4882
która będzie polegała na dodawaniu nowych receptur do bazy danych
public async Task AddRecipe()
{
await _context.Recipes.AddAsync(new Recipe());
await _context.SaveChangesAsync();
}
Miałem zamiar zrobić w taki sposób, że tworzysz nowy przepis, pisząc jego nazwę
AddRecipe(string name);
a potem dodajesz nowe wiersze z nazwą składnika i jego ilością potrzebną do stworzenia dania.
public async Task AddDetailsToRecipe(int recipeId, string name, int quantity) // nie wiem jak Twoj model wyglada wiec nie wiem czym jest PK dla przepisu, zakladam ze masz inta autoinkrementujacego
{
if (quantity < 0)
{
throw new Exception("nie moze byc ilosc mniejsza niz zero");
}
var recipe = _await context.Recipes.Where(recipe => recipe.Id == recipeId).SingleAsync(); // jezeli nie znajdzie zadnego lub wiecej wyrzuci wyjatek
await recipe.Ingredients.AddAsync(new Ingredient(name, quantity);
await _context.SaveChangesAsync();
}
Mam stworzony model,
To wystarczy dopasowac teraz kod to powyzszego kodu
ale wiem jak zrobić logikę, aby pobierało nazwe i składniki i dodawało je do bazy danych i każdy rekord w bazie danych to nazwa przepisu i jeden składnik z ilością.
w sensie nie wiesz? Bo tutaj piszesz ze wiesz :) Co rozumiesz przez pobieralo nazwe i skladniki? To przeciez musisz dodac gdzies w "controlerze" (w sensie w UI czy consola czy jak tam dodajesz rzeczy do aplikacji w sensie uzytkowej nie programistycznej)

- Rejestracja:prawie 14 lat
- Ostatnio:prawie 3 lata
- Postów:4882
jak widzisz, napisalem dokladnie to co napisales, po czym piszesz mi
tak jak napisałem wyżej, że wpisuje nazwę receptury/przepisu a potem wybieram nazwy składników z innej tabeli z składnikami, a potem ich ilość i zapisuje te dane w bazie danych.
wiesz, ze to ma tylko sens dla Ciebie?
że wpisuje nazwę receptury/przepisu
gdzie wpisujesz? w zapytaniu SQL ? w html? w konsoli? jezeli tak, to w jaki sposob masz polaczenie do contextu? (w sensie do bazy danych)?
a potem wybieram nazwy składników z innej tabeli z składnikami,
ale o jakiej tabeli mowisz, SQL czy jakas masz aplikacje gdzie masz wyswietlanie wszystko jako tabele?
, a potem ich ilość i zapisuje te dane w bazie danych.
no to skoro juz zapisujesz to w bazie danych to w czym problem? Jakie masz pytanie?
Prosze doprecyzuj tak, by Twoi nietechniczni kumple zrozumieli co chcesz zrobic. Nikt nie potrafi Ci wyczytac w myslach co masz na mysli
- Rejestracja:ponad 4 lata
- Ostatnio:ponad 4 lata
- Postów:14
Dodaje model tabeli moich przepisów
- screenshot-20201227113121.png (29 KB) - ściągnięć: 5
- Rejestracja:ponad 4 lata
- Ostatnio:ponad 4 lata
- Postów:14
Bo robię aplikacje webową w ASP.NET MVC. Tworzę funkcjonalność, polegająca na tym, że tworzę przepis, wpisuje nazwę przepisu, składniki i ich ilość. Następnie przepis jest zapisywany w bazie danych, której każdy składnik to odrębny rekord z tą samą nazwą przepisu/produktu. Następnie inna funkcjonalność będzie polegała na wybieraniu przepisu i pobieraniu z magazynu składników potrzebnych materiałów i tworzeniu produktu z zadeklarowaną ilością.


- Rejestracja:prawie 14 lat
- Ostatnio:prawie 3 lata
- Postów:4882
w Recipes nie powinienes miec 'amountoraz
IdIngredient`. Co jezeli chcesz miec 3 skladniki? Jak wtedy bys sobie wyobrazil te dane?
potrzebujesz miec
public virtual List<Ingredients> Ingredients {get;set;} // a nawet lepiej byloby ienumerable
w Ingredients
masz
public class Ingredients
{
public int Id {get;set;}
public int RecipeId {get;set;}
public string Name {get;set;}
public string Amount {get;set;} // chociaz ja wole quantity, amount to bardziej jezeli chodzi o gotowke
}
reszta tak jak napisalem w pierwszym moim poscie
- Rejestracja:ponad 4 lata
- Ostatnio:ponad 4 lata
- Postów:14
Model Ingredients
- screenshot-20201227113855.png (31 KB) - ściągnięć: 101

- Rejestracja:prawie 14 lat
- Ostatnio:prawie 3 lata
- Postów:4882
- Rejestracja:ponad 4 lata
- Ostatnio:ponad 4 lata
- Postów:14
Przepisy mam zamiar usuwać edytować to wg. mnie użyje
public virtual List<Ingredients> Ingredients {get;set;} // a nawet lepiej byloby ienumerable
Muszę dodać do modelu "Recipes" klucz obcy Idingredients i IdProducts czy wystarczy powyższa linijka kodu?
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.