I have a problem with MySql and Entity Framework Code First.
My Connection String at the web.config.xml
<add name="EntityContext" connectionString="Server=127.0.0.1; port=8080 Database=simple_crud; Uid=root; Pwd=;" providerName="MySql.Data.MySqlClient" />
My Context:
public class EntityContext : DbContext
{
public DbSet<Pessoa> Pessoas { get; set; }
}
My Class:
[Table("pessoa")]
public class Pessoa
{
[Key]
[Column("Id")]
public int Id { get; set; }
[Column("Nome")]
public string Nome { get; set; }
}
My Controller
public EntityContext db = new EntityContext();
public ActionResult Index()
{
List<Pessoa> pessoas = db.Pessoas.ToList(); // here is the error
return View(pessoas);
}
So, when I press F5 I got this: “Input string was not in a correct format”.
What I’m miss?
UPDATE
Stack Trace:
[FormatException: Input string was not in a correct format.]
System.Number.StringToNumber(String str, NumberStyles options,
NumberBuffer& number, NumberFormatInfo info, Boolean parseDecimal)
+9591147 System.Number.ParseUInt32(String value, NumberStyles options, NumberFormatInfo numfmt) +119
System.String.System.IConvertible.ToUInt32(IFormatProvider provider)
+46 System.Convert.ChangeType(Object value, Type conversionType, IFormatProvider provider) +9509065
MySql.Data.MySqlClient.MySqlConnectionStringBuilder.ChangeType(Object
value, Type t) +240
MySql.Data.MySqlClient.MySqlConnectionStringBuilder.SetValue(String
keyword, Object value) +399
MySql.Data.MySqlClient.MySqlConnectionStringBuilder.set_Item(String
keyword, Object value) +54
System.Data.Common.DbConnectionStringBuilder.set_ConnectionString(String
value) +127
MySql.Data.MySqlClient.MySqlConnection.set_ConnectionString(String
value) +289
System.Data.Entity.Internal.LazyInternalConnection.TryInitializeFromAppConfig(String
name) +409
System.Data.Entity.Internal.LazyInternalConnection.Initialize() +49
System.Data.Entity.Internal.LazyInternalConnection.get_ConnectionHasModel()
+10 System.Data.Entity.Internal.LazyInternalContext.InitializeContext()
+265 System.Data.Entity.Internal.InternalContext.GetEntitySetAndBaseTypeForType(Type
entityType) +17
System.Data.Entity.Internal.Linq.InternalSet1.Initialize() +621.GetEnumerator() +15
System.Data.Entity.Internal.Linq.InternalSet
System.Data.Entity.Infrastructure.DbQuery1.System.Collections.Generic.IEnumerable<TResult>.GetEnumerator()1..ctor(IEnumerable
+40 System.Collections.Generic.List1 collection) +315 System.Linq.Enumerable.ToList(IEnumerable1
source) +58 SimpleMysqlCrud.Controllers.PessoaController.Index() in
f:\users\pablo.rocha.fti\documents\visual studio
2010\Projects\SimpleMysqlCrud\SimpleMysqlCrud\Controllers\PessoaController.cs:16
lambda_method(Closure , ControllerBase , Object[] ) +62
System.Web.Mvc.ActionMethodDispatcher.Execute(ControllerBase
controller, Object[] parameters) +17
System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext
controllerContext, IDictionary2 parameters) +2082
System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext
controllerContext, ActionDescriptor actionDescriptor, IDictionary
parameters) +27
System.Web.Mvc.<>c_DisplayClass15.b_12()
+55 System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter
filter, ActionExecutingContext preContext, Func1 continuation) +2631 filters, ActionDescriptor actionDescriptor,
System.Web.Mvc.<>c__DisplayClass17.<InvokeActionMethodWithFilters>b__14()
+19 System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodWithFilters(ControllerContext
controllerContext, IList
IDictionary2 parameters) +1911.b__7(IAsyncResult
System.Web.Mvc.ControllerActionInvoker.InvokeAction(ControllerContext
controllerContext, String actionName) +343
System.Web.Mvc.Controller.ExecuteCore() +116
System.Web.Mvc.ControllerBase.Execute(RequestContext requestContext)
+97 System.Web.Mvc.ControllerBase.System.Web.Mvc.IController.Execute(RequestContext
requestContext) +10
System.Web.Mvc.<>c__DisplayClassb.<BeginProcessRequest>b__5() +37
System.Web.Mvc.Async.<>c__DisplayClass1.<MakeVoidDelegate>b__0() +21
System.Web.Mvc.Async.<>c__DisplayClass8
) +12 System.Web.Mvc.Async.WrappedAsyncResult`1.End() +62 System.Web.Mvc.<>c_DisplayClasse.b_d() +50
System.Web.Mvc.SecurityUtil.b_0(Action f) +7
System.Web.Mvc.SecurityUtil.ProcessInApplicationTrust(Action action)
+22 System.Web.Mvc.MvcHandler.EndProcessRequest(IAsyncResult asyncResult) +60
System.Web.Mvc.MvcHandler.System.Web.IHttpAsyncHandler.EndProcessRequest(IAsyncResult
result) +9
System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
+8970141 System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +184
Gathering all comments into answer.
Add semicolon after port=3306; and check your mysql listening port (maybe 3306, mysql default?). Resulting connection string: