2011-02-11 92 views
1

我是新来的C#和asp.net编程,目前使用MsSQL数据库链接到我的项目与DBML,使用Linq到SQL,我的连接字符串在我的web.config和我所有的数据库函数都存储在类管理器。下面的例子。在web.config中如何使用C#从类中的函数访问MySQL数据库?

连接字符串:

<add name="ConnectionString" connectionString="Data Source=server;Initial Catalog=database;Persist Security Info=True;User ID=UserId;Password=password" providerName="System.Data.SqlClient" /> 

示例类经理:

using System; 
using System.Collections.Generic; 
using System.Data.Linq; 
using System.Linq; 
using System.Web; 

public class DataManager 
{ 
    private DataContext dc; 

    public DataManager() 
    { 
     dc = new DataContext(); 
    } 

    public News GetNews(int newsId) 
    { 
     return dc.News.Where(x => x.NewsId == newsId).Where(x => x.Deleted == false).FirstOrDefault(); 
    } 

    public News News_Save(News n) 
    { 
     if (n.NewsId == 0) 
      dc.News.InsertOnSubmit(n); 

     dc.SubmitChanges(); 

     return n; 
    } 
} 

我想知道的是我怎么能有一个类似的设置到这一点,但访问一个MySQL数据库。我看过的所有示例都需要在每次使用函数时在页面内创建一个连接字符串,这对我来说似乎是浪费和不必要的。无论如何,我可以使用我目前的结构,但可以使用或不使用DBML访问MySQL数据库?

+0

我们以前在学校做的方式是将连接字符串存储在全局文件中,我们可以从数据访问层访问该文件。看到这个:http://www.eggheadcafe.com/community/aspnet/2/10011720/retrieved-connection-string-storing-in-a-globalasa-file.aspx – Gallen 2011-02-12 00:11:42

回答

0

微软没有通过linq访问mysql的库,但有第三方提供者。看到这个post。这应该意味着你可以保留你的当前经理类(或者可以进行小的修改以适应第三方linq-to-mysql库)。

1

AFAIK,没有最新的MySQL的Linq-to-SQL提供程序。但是有一个实体框架的MySQL提供者:Connector/Net。实体框架也支持LINQ,所以你的代码几乎是一样的。

您可以使用Visual Studio中的内置工具(Project> Add New Item ...> ADO.NET Entity Data Model)从现有数据库创建实体,并将连接信息存储在.config文件(我想这将是一个web/asp.net项目的web.config)。