MySql For Entity Framework 6 Code First 例子

来源:互联网 发布:java并发编程应用 编辑:程序博客网 时间:2024/06/13 23:20

编译环境为:

Visual Studio 2010 + MySql 5.6 + Connector 6.8.3 + Entity Framework 6


Demo过程:

1. 建立Console 项目:EntityFramework.CodeFirst.Demo

2. 添加Entity Framework引用,我是通过NuGet添加的

3. 添加MySql.Data.Entity.EF6引用,添加方法同上

4. 添加类:TestEntities.cs,代码:

    [DbConfigurationType(typeof(MySqlEFConfiguration))]    class TestEntities : DbContext    {        public DbSet<User> Users { get; set; }         public DbSet<Department> Departments { get; set; }     }    public class Department    {        [Key]        public Guid Id { get; set; }        [Required]        [MaxLength(20, ErrorMessage = "Department name must be 20 characters or less"), MinLength(5)]        [ConcurrencyCheck]        public string Name { get; set; }        public virtual ICollection<User> Users { get; set; }     }    public class User    {        [Key]        public Guid Id { get; set; }        [Required]        public string Name { get; set; }        public DateTime Birthday { get; set; }        public char Gender { get; set; }        public string Email { get; set; }        public bool Deleted { get; set; }        public Guid DepartmentId { get; set; }        [ForeignKey("DepartmentId")]        public virtual Department Department { get; set; }    }


4. App.config 添加配置节:

<!-- connectionStrings --><add name="TestEntities" connectionString="Data Source=192.168.103.193; port=3306; Initial Catalog=Test; uid=root; pwd=grasp;" providerName="MySql.Data.MySqlClient" /><!-- providers --><provider invariantName="MySql.Data.MySqlClient" type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.Entity.EF6" />

注意connectionStrings的name必须和实体类名一致


5. 验证:

class Program    {        static void Main(string[] args)        {            DbConfiguration.SetConfiguration(new MySqlEFConfiguration());            using (TestEntities db = new TestEntities())            {                var dep = new Department {Id = Guid.NewGuid(), Name = "测试部"};                db.Departments.Add(dep);                db.SaveChanges();            }        }    }


如果没有意外应该可以成功!

原码例子

0 0