Je construis le projet de démonstration Asp.net Web API, je ne veux utiliser aucun fournisseur de données, ni cadre d'entité, ni Ado. net.Quel est le meilleur moyen d'utiliser les données de la mémoire dans le projet API Web Asp.net pour la démo
Je construis le dépôt,
public class ProductRepo : IProductRepo
{
private List<Product> products = new List<Product>();
private int _nextId = 1;
public ExternalProductDataRepo()
{
products.Add(new Product {Id=1, Name = "Toyata", Category = "Car", Price = 1.3M });
products.Add(new Product {Id=2, Name = "Ford", Category = "Car", Price = 3.75M });
products.Add(new Product {Id=3, Name = "Hammer", Category = "Hardware", Price = 16.99M });
}
public IEnumerable<Product> GetAll()
{
return products;
}
public Product Get(int id)
{
return products.Find(p => p.Id == id);
}
public Product Add(Product item)
{
if (item == null)
{
throw new ArgumentNullException("item");
}
item.Id = _nextId++;
products.Add(item);
return item;
}
public void Remove(int id)
{
products.RemoveAll(p => p.Id == id);
}
public bool Update(Product item)
{
if (item == null)
{
throw new ArgumentNullException("item");
}
int index = products.FindIndex(p => p.Id == item.Id);
if (index == -1)
{
return false;
}
products.RemoveAt(index);
products.Add(item);
return true;
}
}
Mais, dans chaque coup de l'application, une nouvelle instance de la classe ProductRepo est créée, de sorte que même si je sauvegarder les données, il n'a jamais persisté.
De plus, j'ai la possibilité d'utiliser System.Web.Cache pour contenir la liste de produits dans Cache, mais c'est pour un but différent et pour une période de temps limitée, ce qui rend également les tests unitaires difficiles. Alors, quelle est la suggestion de construire le projet de démonstration successif avec les produits CRUD?
Rendre les produits 'List' statiques. Il fonctionnera pendant l'exécution de l'application et servira à des fins de démonstration. –
Fabio
* Sécurité du filetage * – Guillaume