FindByCounty () Cette fonction devrait sortir à la base de données et extraire les informations. Stockez les informations dans leurs classes respectives (ce qui est le cas) ... mais alors quoi?
public EditCountyViewModel FindByCounty(string countyName)
{
var parameters = new DynamicParameters();
parameters.Add("@CountyName", value: countyName);
var query = @"SELECT counties.id
, counties.CountyName
, counties.Website
, counties.Address
, counties.City
, counties.State
, counties.PhonePrimary
, counties.PhoneAlt
, counties.RecordsOnline
, counties.BackToYear
, counties.Cost
, products.ProductName
, products.Description
, countyproduct.TurnTime_MinHours
, countyproduct.TurnTime_MaxHours
, countyproduct.Price
FROM
counties, countyproduct, products
WHERE
counties.CountyName = @CountyName AND countyproduct.countiesID = counties.ID AND countyproduct.productsID = products.ID;";
EditCountyViewModel editCountyVM = new EditCountyViewModel();
EditProductsViewModel editProductVM = new EditProductsViewModel();
editProductVM.ProductList = this.db.Query<Product>(query, new { countyName }).ToList();
editCountyVM.county = this.db.Query<County>(query, new { countyName }).FirstOrDefault();
return editCountyVM;
}
Details () sur HOMEcontroller Je pense que je devrais juste interroger toutes les informations et utiliser LINQ dans cette fonction pour trouver les informations dont j'ai besoin.
public ActionResult Details(string countyName)
{
var model = repository.FindByCounty(countyName);
return View(model);
}
En tant que mon code, il ne s'exécute pas car dans FindByCounty()
il ne renvoie qu'un des éléments requis editCountyVM
. Maintenant, je pourrais changer la sortie de la fonction et retourner l'autre editProductVM
mais je n'aurais pas le premier ensemble d'informations (editCountyVM).
Je crois que le problème est la méthode que je vais suivre pour obtenir cette information. Toute aide serait appréciée.
Il semble que si vous voulez retourner à la fois editCountyVM
et editProductVM
vous pouvez changer le type de retour de votre méthode en un Tuple<EditCountyViewModel,EditProductsViewModel>
. Ensuite, faites votre déclaration comme suit:
return new Tuple<EditCountyViewModel,EditProductsViewModel>(editCountyVM, editProductVM);