Entity Framkwork从第二版(EF4)开始,支持新的CodeFirst模式(程序代码优先),以自定义类定义数据模型。简化了EF的开发过程。本文章使用简单的示例来说明如何使用来自数据库的CodeFirst模式。
新建一个空的控制台应用程序, 名叫CodeFirstDemo,如下图所示:
右击项目,在弹出的对话框中选择“新建项”,然后“添加”,如下图所示:
在界面中选择“ADO.NET实体数据模型”,并且命名为KTStoreModel,如下图所示:
然后选择“来自数据库的CodeFirst”,如下图所示:
点击“下一步”,可以看到数据库连接向导界面,因为我之前已经连接过数据库,界面中变保留了以前的设置。我不需要新建连接,所以采用原来的设置即可。为了能够直观的看到连接字符串,我选择在连接字符串中包含敏感字符串。如下图所示:
点击下一步后,在数据库中的连接对象, 如下图所示:
点击“完成”后,在解决方案中,可以看到,除了必要的EntityFramework引用外,与EF Designer(设计器)相比,采用CodeFirst的模型内容只有定义模型的Product.cs 和KTStoreModel.cs两个类文件,如下图所示:
在App.config问价中可以看到,设置的数据库连接字符串,如下图所示:
在Program.cs中加入代码,如下图所示:
class Program{static void Main(string[] args){KTStoreModel db = new KTStoreModel();Console.WriteLine("商品项目数为:{0}", db.Product.Count());foreach (Product p in db.Product){int id = p.Id;string name = p.Name;string category = p.Category;int price = p.Price;Console.WriteLine("{0}\t{1}\t{2}\t{3}\n",id,name,category,price);}Console.ReadKey();}}
运行程序,如下图所示:
CodeFirst大幅度简化了EF架构,通过自定义的类文件即可完成数据对象的映射与底层数据的存取工作,不在需要EDM相关文件。对于大型的在线开发特别有利。因此推荐以CodeFirst为主要开发模式。