内容:记录WPF+EF(DBFirst)模式下 做简单应用的一些习惯、遇到的一些问题以及准备就此做些EF的学习测试;
环境:VS2017 , SQL Server 2016或2017,EF 6.2.0
Step1: 新建WPF简单应用:
安装EF:
Step2: 新增 Model 和 DAL 两个类库:
添加相互引用: (主应用程序引用Model和DAL , DAL 引用Model)
Model 和 DAL 分别安装 EF。
Step3: Model中建立 实体模型
测试数据采用微软演示测试用数据库 Adventureworks;
为 WPF_EF_DBFirst.Model 增加数据项目,选择 ADO.NET Entity Data Model:
选择导航中: EF Designer from database :
点击新建数据库连接后,输入数据库连接的相关参数:服务器名、认证信息、数据库名:
注:考虑到WPF的Config文件是直接可打开浏览的,则选择第一个选项,在数据库连接字符串里把密码隐藏,以后在应用中指定密码;
目前涉及到3个需要起名字的地方:
一个是 Item Name;
一个是 在App.Config 中字符串名称;
一个是 Model Namespace; (此名称具体作用还需要后续学习)
选择需要建模型的数据库表,可以把 HumanResources,Person,Production,Purchasing,Sales 全部都选上;然后点击确定;
需要等待一段时间。。。
这里出现有2个错误提示: (错误原因是EF目前不支持SQL Server的Hierarchyid字段,后续再考虑有什么办法)
至此,把数据模型建立在Model这个库里已经完成。
Step4 题外篇
采用网友:普通的地球人 所提出的Bootstrap风格的WPF样式
https://www.cnblogs.com/tsliwei/p/6138412.html
先去 https://github.com/ptddqr/bootstrap-wpf-style 或者 BootstrapWpfStyle.zip 下载作者的示例程序包;
解压开后,拷贝Styles子目录拷贝进主应用;
修改主应用 App.xaml : (如果是其他项目名称,则修改 WPF_EF_DBFirst 为实际项目名称)
<Application x:Class="WPF_EF_DBFirst.App" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:local="clr-namespace:WPF_EF_DBFirst" StartupUri="MainWindow.xaml"> <Application.Resources> <ResourceDictionary> <ResourceDictionary.MergedDictionaries> <ResourceDictionary Source="pack://application:,,,/WPF_EF_DBFirst;component/Styles/Bootstrap.xaml"/> </ResourceDictionary.MergedDictionaries> </ResourceDictionary> </Application.Resources> </Application>
通过全Solution替换的方式,把BootstrapWpfStyle字符串全部变更为WPF_EF_DBFirst或者实际项目名称:
最后:增加 PresentationFramework.Aero 引用;