如果没有任何现存数据库架构,可以使用空的EF设计器模型。本文将通过简单示例,了解如何使用空EF设计器模型。
新建空的控制器应用程序EFDesignerDemo,如下图所示:
在项目中右键,选择“添加”,然后是“新建项”,如下图所示:
然后选择“ADO.NET实体数据模型”,如下图所示:
点击添加后,选择“空EF设计器模式”,如下图所示:
点击“确定”后,显示的界面如下图所示:
点击上图中的“工具箱”,在弹出的框中选择“实体”,并拖到主界面上,如下图所示:
修改实体类名称“Entity1”为“MyProduct”,并且在“属性”名称上右击,在弹出的快捷键菜单中单击“新增”选项,展开子菜单,再单击“标量属性”选项,将属性添加到实体对象中,如下图所示:
可以在属性列表中,修改属性字段的类型,如下图所示:
右键单击空白处,在弹出的快捷菜单中单击“添加代码生成项”,如下图所示:
在弹出的界面中选择“EF6xDbContext生成器”,如下图所示:
在解决方案中,也可以看到增加了如下文件:
再次在空白处点击右键,在弹出的列表中选择“根据模型生成数据库”,如下图所示:
弹出的界面是上次数据库设置的信息,如果之前没有任何设置,这个界面将显示空白,我这里不新建数据库,采用上一篇文章中的数据库和链接字符串,所以我不需要“新建连接”,并且,为了方便查看连接字符串,因此,我在连接中包括了敏感数据,如下图所示:
点击“下一步”,可以看到EF框架自动生成了SQL语句,如下图所示:
点击“完成”后,可以看到以上自动生成的SQL语句存储在KTStoreModel.edmx.sql文件中,内容则对应建立的实体对象结构,如下图所示:
右键点击SQL文件空白处,在弹出的框中选择“执行”如下图所示:
输入数据库连接的参数,如下图所示:
点击“连接”,后可以看到,如下提示:
可以看到,在SqlSever中,已经生成了MyProduct表,但是EF默认加了Set后缀。
为了测试运行,我们将表中导入一些数据,并在Program.cs中添加代码,如下图所示:
class Program{static void Main(string[] args){KTStoreModelContainer db = new KTStoreModelContainer();Console.WriteLine("商品项目数:{0}",db.MyProudctSet.Count());foreach (MyProudct p in db.MyProudctSet){int id = p.Id;string name = p.Name;string categroy = p.Categroy;int price = p.Price;Console.WriteLine("{0}\t{1}\t{2}\t{3}",p.Id,p.Name,p.Categroy,p.Price);}Console.Read();}}
运行程序,EF框架自动从数据库中获取数据并显示,如下图所示: