2011-08-25 148 views
2

我需要在非现场MySQL数据库中的几个表中使用数据,我们有限的访问权并决定使用它作为获取一些EFCF体验的机会。无论我做什么,我都无法从MySQL数据库中获取任何数据。使用MySQL工作台,我可以确认连接的详细信息是正确的,并且可以访问必要的表。实体框架代码首先+ MySQL ... NullReferenceException

下面是当前的配置编辑一点点来保护服务器等

Web配置

<connectionStrings> 
    <clear /> 
    <add name="foo" connectionString="Server=111.222.333.444; Database=foo; Uid=foouser; Pwd=bar;" providerName="MySql.Data.MySqlClient" /> 
</connectionStrings> 
<system.data> 
    <DbProviderFactories> 
     <remove invariant="MySql.Data.MySqlClient" /> 
     <add name="MySQL Data Provider" invariant="MySql.Data.MySqlClient" description=".Net Framework Data Provider for MySQL" type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data" /> 
    </DbProviderFactories> 
</system.data> 

的DbContext

public class DbContext : System.Data.Entity.DbContext 
{ 
    public DbContext() 
     : base("foo") 
    { 

    } 

    public DbSet<Model.resource_request> resource_requests { get; set; } 
} 

资源请求

[Table("resource_requests")] 
public class resource_request 
{ 
    [Key] 
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)] 
    public Int64 id { get; set; } 

    public string CustomerName { get; set; } 
    public string ContactEmail { get; set; } 
} 

快速使用立即窗口检查上下文状态,我收到:

ctx.Database.Connection.Open() 
Expression has been evaluated and has no value 
ctx.Database.Connection 
{MySql.Data.MySqlClient.MySqlConnection} 
    [MySql.Data.MySqlClient.MySqlConnection]: {MySql.Data.MySqlClient.MySqlConnection} 
    base {System.ComponentModel.Component}: {MySql.Data.MySqlClient.MySqlConnection} 
    ConnectionString: "server=111.222.333.444;database=foo;User Id=foouser" 
    ConnectionTimeout: 15 
    Database: "foo" 
    DataSource: "111.222.333.444" 
    ServerVersion: "5.1.43-community" 
    State: Open 

ctx.resource_requests.Count(); 

Exception details

但是执行的查询结果我敢肯定,我一定是错过了明显的东西,但是它是什么?

非常感谢

+0

您是否找到解决方案? – Colin

+0

这是一段时间,所以从内存中我认为它与适配器的数据类型转换中的错误有关。最后我想我下载了源代码并做了必要的调整。 – Hawxby

回答

3

您是否尝试命名连接字符串DbContext?它的名字应该和类名匹配。

像这样:

<add name="DbContext" connectionString="Server=111.222.333.444; Database=foo; Uid=foouser; Pwd=bar;" providerName="MySql.Data.MySqlClient" /> 

还没有与MySQL还没有尝试过,但我在过去有问题与SQL Server时,不正确命名的连接字符串。

此致敬礼!

+0

六小时下来的toobs。有人可以告诉我这是在MySQL网站上的记录吗?谢谢Guilherme Melo,你会得到我的+1 – THBBFT