简体   繁体   中英

MySql and Entity Framework Code First

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.InternalSet 1.Initialize() +62
System.Data.Entity.Internal.Linq.InternalSet
1.Initialize() +62
System.Data.Entity.Internal.Linq.InternalSet
1.Initialize() +62
System.Data.Entity.Internal.Linq.InternalSet
1.GetEnumerator() +15

System.Data.Entity.Infrastructure.DbQuery 1.System.Collections.Generic.IEnumerable<TResult>.GetEnumerator() +40 System.Collections.Generic.List 1..ctor(IEnumerable 1 collection) +315 System.Linq.Enumerable.ToList(IEnumerable 1 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, IDictionary 2 parameters) +208
System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary
2 parameters) +208
System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary
2 parameters) +208
System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary
2 parameters) +27

System.Web.Mvc.<>c_ DisplayClass15.b _12() +55 System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter filter, ActionExecutingContext preContext, Func 1 continuation) +263
System.Web.Mvc.<>c__DisplayClass17.<InvokeActionMethodWithFilters>b__14() +19 System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodWithFilters(ControllerContext controllerContext, IList
1 continuation) +263
System.Web.Mvc.<>c__DisplayClass17.<InvokeActionMethodWithFilters>b__14() +19 System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodWithFilters(ControllerContext controllerContext, IList
1 continuation) +263
System.Web.Mvc.<>c__DisplayClass17.<InvokeActionMethodWithFilters>b__14() +19 System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodWithFilters(ControllerContext controllerContext, IList
1 filters, ActionDescriptor actionDescriptor, IDictionary 2 parameters) +191
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
2 parameters) +191
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
2 parameters) +191
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
1.b__7(IAsyncResult ) +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:

<add name="EntityContext" connectionString="Server=127.0.0.1; port=3306; Database=simple_crud; Uid=root; Pwd=;" providerName="MySql.Data.MySqlClient" />

MySql Default Port is 3306; So no Need to mention this here,

Eg:

<add name="DefaultConnection" providerName="MySql.Data.MySqlClient" connectionString="SERVER=localhost;DATABASE=testdb;UID=test;PASSWORD=test123;" />

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM