3

MySql 和 Entity Framework Code First 有问题。

我在 web.config.xml 的连接字符串

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

我的背景:

public class EntityContext : DbContext
{
    public DbSet<Pessoa> Pessoas { get; set; }
}

我的课:

[Table("pessoa")]
public class Pessoa
{
    [Key]
    [Column("Id")]
    public int Id { get; set; }

    [Column("Nome")]
    public string Nome { get; set; }
}

我的控制器

public EntityContext db = new EntityContext();

public ActionResult Index()
{
     List<Pessoa> pessoas = db.Pessoas.ToList(); // here is the error
     return View(pessoas);
}

所以,当我按 F5 时,我得到了这个:“输入字符串的格式不正确”。

我想念什么?

更新

堆栈跟踪:

[FormatException: 输入字符串格式不正确。]
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(字符串关键字,对象值)+399
MySql.Data.MySqlClient.MySqlConnectionStringBuilder.set_Item(字符串关键字,对象值)+54
System.Data.Common.DbConnectionStringBuilder.set_ConnectionString(字符串值)+127
MySql.Data.MySqlClient.MySqlConnection.set_ConnectionString(字符串值)+289
System.Data.Entity.Internal.LazyInternalConnection.TryInitializeFromAppConfig(字符串名称)+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.GetEnumerator() +15 System.Data.Entity.Infrastructure.DbQuery 1..ctor(IEnumerable1.Initialize() +62
System.Data.Entity.Internal.Linq.InternalSet

1.System.Collections.Generic.IEnumerable<TResult>.GetEnumerator() +40 System.Collections.Generic.List1 collection) +315 System.Linq.Enumerable.ToList(IEnumerable1 来源)+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 控制器, Object[] 参数) +17
System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext, IDictionary 2 参数) +27 System.Web. Mvc.<>c_ DisplayClass15.b _12() +55 System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter filter, ActionExecutingContext preContext, Func 1 filters, ActionDescriptor actionDescriptor, IDictionary2 parameters) +208
System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary

1 continuation) +263
System.Web.Mvc.<>c__DisplayClass17.<InvokeActionMethodWithFilters>b__14() +19 System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodWithFilters(ControllerContext controllerContext, IList
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(动作 f)+7 System.Web.Mvc.SecurityUtil.ProcessInApplicationTrust(动作动作)+22 System.Web.Mvc.MvcHandler.EndProcessRequest(IAsyncResult asyncResult)+60
System.Web.Mvc.MvcHandler.System.Web。 IHttpAsyncHandler.EndProcessRequest(IAsyncResult 结果) +9
System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +8970141 System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +184

4

2 回答 2

2

将所有评论收集到答案中。

在port=3306后面加分号;并检查您的 mysql 监听端口(可能是 3306,mysql 默认?)。结果连接字符串:

<add name="EntityContext" connectionString="Server=127.0.0.1; port=3306; Database=simple_crud; Uid=root; Pwd=;" providerName="MySql.Data.MySqlClient" />
于 2013-01-16T15:37:25.623 回答
0

MySql 默认端口为 3306;所以这里就不用提了,

例如:

<add name="DefaultConnection" providerName="MySql.Data.MySqlClient" connectionString="SERVER=localhost;DATABASE=testdb;UID=test;PASSWORD=test123;" />
于 2017-02-11T12:54:36.313 回答