2017-06-02 99 views
1

我玩.NET核心并试图获得asp.net核心 + mysql的+短小精悍+迷你-MVC-探查到在Linux上工作。迷你mvc分析器有问题。无法对.NET的核心与MiniProfiler来分析MySQL的

我使用:

<PackageReference Include="Dapper" Version="1.50.2" /> 
<PackageReference Include="MiniProfiler.AspNetCore" Version="4.0.0-alpha6-79" /> 
<PackageReference Include="MiniProfiler.Shared" Version="4.0.0-alpha6-79" /> 
<PackageReference Include="MySql.Data.Core" Version="7.0.4-IR-191" /> 

我有SQLProfiler类:

public class SQLProfiler 
{ 
    public static DbConnection GetOpenConnection(string connectionString) 
    { 
     //return new MySqlConnection(connectionString); // that works OK   
     return new StackExchange.Profiling.Data.ProfiledDbConnection( 
      new MySqlConnection(connectionString), MiniProfiler.Current 
     ); 
    } 
} 

而且从库类调用它:

using (var connection = SQLProfiler.GetOpenConnection(_connectionString)) 
{    
    return connection.Query<UserIdentityDTO>(sql, 
     new { 
      myemail = email, 
      mypassword = password, 
      myprovider = PROVIDER_LOCAL 
     } 
    ).FirstOrDefault();     
} 

我得到:

NullReferenceException: Object reference not set to an instance of an object. 
MySql.Data.MySqlClient.MySqlConnection.set_Reader(MySqlDataReader value) 

堆栈跟踪:

MySql.Data.MySqlClient.MySqlConnection.set_Reader(MySqlDataReader value) 
MySql.Data.MySqlClient.MySqlCommand.ResetReader() 
MySql.Data.MySqlClient.MySqlCommand.Dispose(bool disposing) 
StackExchange.Profiling.Data.ProfiledDbCommand.Dispose(bool disposing) in ProfiledDbCommand.cs 
System.Data.Common.DbCommand.Dispose() 
Dapper.SqlMapper+<QueryImpl>d__124.MoveNext() 
System.Collections.Generic.List..ctor(IEnumerable<T> collection) 
System.Linq.Enumerable.ToList<TSource>(IEnumerable<TSource> source) 
Dapper.SqlMapper.Query<T>(IDbConnection cnn, string sql, object param, IDbTransaction transaction, bool buffered, Nullable<int> commandTimeout, Nullable<CommandType> commandType) 
persistance.dapper.repository.UserQueries.Get(string email, string password) in UserQueries.cs 
+0

尝试包中的代码'尝试/ catch'和看到的是有任何真正的错误。现在,在处理过程中,真正的错误会被'finally'块中的异常所覆盖。 – VMAtm

+1

我试图找到他们的图书馆的来源,看看有什么。与此同时,我建议尝试https://www.nuget.org/packages/MySqlConnector/ - 它实际上是*'async',并且在.NET Core上一直很不错。值得一提的是,MySql.Data.Core软件包现在不在列表中......它可能存在许多问题。 –

+0

谢谢。它神奇地现在工作! –

回答

0

至于建议由Nick Craver,

<ItemGroup> 
    <PackageReference Include="Dapper" Version="1.50.2" /> 
    <PackageReference Include="DapperExtensions.DotnetCore" Version="1.0.1" /> 
    <PackageReference Include="MiniProfiler.AspNetCore" Version="4.0.0-alpha6-79" /> 
    <PackageReference Include="MiniProfiler.Shared" Version="4.0.0-alpha6-79" /> 
    <PackageReference Include="MySqlConnector" Version="0.30.0" /> 
    </ItemGroup> 

...这是活着:-)