C#winforms共享项目的mysql连接

时间:2016-07-09 10:04:09

标签: c# mysql .net winforms

我试图在解决方案中为我的所有项目创建一个实例。我想要防止多个数据库对象。

我在项目上有这个组织:

|-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()内创建数据库对象?对于普鲁米尔来说,还不是真的吗?

改善这个项目的其他方法是什么?

0 个答案:

没有答案