【发布时间】:2018-11-08 19:56:46
【问题描述】:
我正在使用 Visual Studio 2017 应用 Code First 方法开发一个带有 ASP.NET MVC 的应用程序。我在模型中有三个类(表)和一个名为DataBase 的存储库和一个接口IDataBase。
我正在尝试在不使用 db 的情况下将数据存储在内存中。我现在不知道如何在表格中添加新项目?
这是我的DataBase 类(存储库):
public class DataBase : IDataBase
{
private List<Proveedor> proveedors;
private List<Factura> facturas;
private List<FacturadeArticulo> facturadeArticulos;
public DataBase()
{
this.proveedors = new List<Proveedor>();
this.facturas = new List<Factura>();
this.facturadeArticulos = new List<FacturadeArticulo>();
}
public Proveedor AddProveedor(Proveedor item)
{
// acces db
if (item == null)
{
throw new ArgumentNullException("item");
}
proveedors.Add(item);
return item;
}
}
我的界面IDataBase:
public interface IDatabase
{
Proveedor Add(Proveedor item);
}
我的控制器
public ActionResult Create(Proveedor provedor)
{
try
{
// TODO: Add insert logic here
var data = this.db.Add(provedor);
return RedirectToAction("Index");
}
catch
{
return View();
}
}
我现在不知道如何在不使用数据库的情况下实现 Add 方法并将数据保存在内存中。
【问题讨论】:
-
如果您将数据保存在内存中,只要 IIS 回收您的服务器进程,它就会消失。你需要一个数据库。
-
试试litedb.org,同样的代码优先方法,免费,你的数据实际上已经保存了。
-
看起来你有对象列表,是那些你想保存数据的地方吗?看起来您正在调用
.Add()将元素添加到这些列表中。那么究竟是什么不起作用? -
数据库(存储库)中的方法不起作用。当我尝试创建新项目时,我没有任何错误,但我的 Proveedor 是空的。我正在使用库 Unity
-
可能是空的,因为模型没有正确绑定?
标签: c# asp.net-mvc repository