MySql For EF CodeFirst 例子

由于业余项目中的一些问题,开始想了解EF  Code First 实现 Domain 。

我用Mysql,网上多数Demo针对SqlServer举例。想套上MySql ,

本来想这没什么的,但有一段时间尝试不成功,想查查网上资料本菜没有看到什么。

 

当然Mysql Connector 6.6.2 发布还是有点小兴奋,就是Code First的一种方式

在这个版本下测试通过了;

 

当然不可能不是每种环境都OK的,我的是:

VS2010 + Mysql5.5 + Connector 6.6.2 + EF 4.4

 

demo代码主要是借来的。

Demo过程:

1、建立 Console 项目 SomeCodeFirst1;

2、添加对 EF 的引用,我用 NuGet 安装;

3、Program 文件里添加 

ProductContext,
Product,
Category 类
    public class ProductContext : DbContext
    {
        public DbSet<Category> Categories { get; set; }
        public DbSet<Product> Products { get; set; }
    }


    public class Category
    {
        [Key]
        public int CategoryId { get; set; }
        public string Name { get; set; }
        public virtual ICollection<Product> Products { get; set; }
    }

    public class Product
    {
        [Key]
        public int ProductId { get; set; }
        public string Name { get; set; }
        public string CategoryId { get; set; }
        public virtual Category Category { get; set; }
    }

4、APP.config 添加配置节:

<connectionStrings>
<add name="ProductContext" providerName="MySql.Data.MySqlClient" 
connectionString="server=localhost;User Id=test;password=test;database=test;" />
</connectionStrings>

5、初步验证:

    class Program
    {
        static void Main(string[] args)
        {
            using (var db = new ProductContext())
            {
                // Add a food category 
                var food = new Category { Name = "Foods" };
                db.Categories.Add(food);
                int recordsAffected = db.SaveChanges();
                Console.WriteLine("Saved {0} entities to the database, press any key to exit.", recordsAffected);
                Console.ReadKey();
            }
        }
    }

 

如果没有意外因该成功;

 demo下载

 

 

posted @ 2012-09-03 12:22  bikaqiou2000  阅读(2112)  评论(2编辑  收藏  举报