我试图在解决方案中为我的所有项目创建一个实例。我想要防止多个数据库对象。
我在项目上有这个组织:
|-Solution:
|--- Core
|-------- Common
|------------ App.cs <singleton>
|------------ Model.cs
|------------ Database.cs
|
|--- Project 1
|-------- Models
|------------- Users.cs
|------------- Products.cs
|------------- Categories.cs
|-------- UI
|-------- etc...
|
|--- Project 2
|--- Project 3
|--- Project 4
Core
项目是具有App
单例类的库项目,Model
类是模型的基类和MySql
的数据库类。
基本型号:
namespace Core.Common
{
public class Model : Database
{
public Database db;
public Model()
{
db = new Database();
if(db.IsConnected())
{
App.IsConnected = true;
}
}
}
}
在我的所有模特中,我创造了这个:
namespace Core.Models
{
public class Products: Model
{
public Products() : base()
{
//..etc
}
public DataTable ShowAll()
{
return db.query("SELECT * FROM products");
}
}
}
所以我的所有项目都有数据库模型,模型必须扩展基础模型类,它已经包含用于连接的数据库对象。但是所有模型类都必须扩展base
construcotr以建立连接。
但我认为这是一种不好的做法。
如何在Main()
内创建数据库对象?对于普鲁米尔来说,还不是真的吗?
改善这个项目的其他方法是什么?