本文通过简单的示例,先初步了解下EF四种设计模式之一:来自数据库的EF设计器。
来自数据库的EF设计器,顾名思义,需要有新建的数据库和表结构,才能生成EF设计器, 在本地新建数据库KTStore,并且新建表Produtc,表结构及表中的数据如下图所示:
新建新的控制台应用程序:EFDemo,如下图所示:
右键项目,选择“添加”,然后是“新建项”,如下图所示:
在对话框中选择“ADO.NET”实体数据模型,如下图所示:
单击“添加”后,在弹出的窗口中,选择“来自数据库的EF设计器”,如下图所示:
点击下一步后,点击“新建连接” :
点击“更改” :
根据实际情况选择要连接数据库还是数据库文件,我选的是数据库:
填写数据库连接数据,如下图所示:
然后点击“测试连接”,如下图所示:
点击“确定”后,显示出如下对话框,可以看到自动生成了连接字符串:
然后根据实际情况,选择是否显示连接字符串中的敏感信息,如账号密码什么的,我这边为了方便查看选择显示:
点击“下一步”,选择“实体框架6.x”,如下图所示:
点击“下一步”,在弹出的窗口中选择需要加入的表,如下图所示,选择Product表,并点击“完成”按钮即可。
完成后,可以看到,解决方案中增加了一些文件和DLL,这些都是EF框架自动生成的,如下图所示 :
回到Program.cs界面增加如下代码:
namespace EFDemo
{class Program{static void Main(string[] args){KTStoreEntities db = new KTStoreEntities();Console.WriteLine("商品数据项数:{0}\n", db.Product.Count());IEnumerable<Product> rows = db.Product.Select(x => x);foreach (Product p in rows){int id = p.Id;string name = p.Name;int? price = p.Price;string category = p.Category;Console.Write("{3}\t 定价:{2}\t{0}\t{1}\n",id,name,price,category);}Console.Read();}}
}
运行程序,EF框架自动从数据库获取数据并显示,结果如下图所示: