由于业余项目中的一些问题,开始想了解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(); } } }
如果没有意外因该成功;