100求EF6+MYSQL Code First的问题,求大神~~~小弟今天请假回来研究的

黑子大哥 2014-06-04 12:04:40
我使用EF6+MYSQL+CODE FIRST 方式,实体已经创建完成,生成数据库使用
NoteDB db = new NoteDB();
bool isSuccess = db.Database.CreateIfNotExists();
可以在MSSQL中正常正确生成数据库 主外键
可是在MYSQL中就异常了
出现:Specified key was too long; max key length is 1000 bytes



结果MySql能生成出数据库,但是没找到外键关系,可能是我没找到怎么找,刚使用mysql,还有很多不熟悉

NotesDB 代码:
public class NoteDB : DbContext
{
public NoteDB()
: base("name=MYSQL")
{
//Database.SetInitializer<NoteDB>(null);
}

protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
}
public DbSet<Address> Adress { get; set; }
}
MYSQL 是webconfig中配置连接mysql的字符串
没有其他的设置,MYSQL正确连接,WEBCONFIG正确配置
...全文
216 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
crastalsxq 2014-06-25
  • 打赏
  • 举报
回复
我的方法不行吗?我自己这边测试可以的啊?
crastalsxq 2014-06-24
  • 打赏
  • 举报
回复
代码改成如下:

[DbConfigurationType(typeof(MySqlEFConfiguration))]
public class NoteDB : DbContext
    {
        public NoteDB()
            : base("name=MYSQL")
        {
            //Database.SetInitializer<NoteDB>(null);
        }

        protected override void OnModelCreating(DbModelBuilder modelBuilder)
        {
            base.OnModelCreating(modelBuilder);         
        }
        public DbSet<Address> Adress { get; set; }
}
请参考 http://dev.mysql.com/doc/connector-net/en/connector-net-entityframework60.html
黑子大哥 2014-06-04
  • 打赏
  • 举报
回复
没人? 求顶啊!!
黑子大哥 2014-06-04
  • 打赏
  • 举报
回复
http://stackoverflow.com/questions/20832546/entity-framework-with-mysql-and-migrations-failing-because-max-key-length-is-76 这里有一篇相关的,无奈英文太差,没搞懂!! 求大神!!
黑子大哥 2014-06-04
  • 打赏
  • 举报
回复
[Table("Address")] public class Address { [Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)] public short ID { get; set; } [Display(Name = "地址名称"), Required(ErrorMessage = "名称不能为空"), StringLength(100, ErrorMessage = "最大长度为100")] public string Name { get; set; } [Display(Name = "地址代码"), StringLength(50, ErrorMessage = "最大长度为50")] public string Code { get; set; } [Display(Name = "地址描述"), Column(TypeName = "text")] public string Remark { get; set; } public Nullable<System.DateTime> Created { get; set; } public Address() { Created = DateTime.Now; } } 没搞懂他这个1000是怎么算的,这里是实体

62,266

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧