内容:记录WPF+EF(DBFirst)模式下 作简单应用的一些习惯、遇到的一些问题以及准备就此作些EF的学习测试;html
环境:VS2017 , SQL Server 2016或2017,EF 6.2.0git
安装EF:github
添加相互引用: (主应用程序引用Model和DAL , DAL 引用Model)数据库
Model 和 DAL 分别安装 EF。bootstrap
测试数据采用微软演示测试用数据库 Adventureworks;服务器
为 WPF_EF_DBFirst.Model 增长数据项目,选择 ADO.NET Entity Data Model:app
选择导航中: EF Designer from database :学习
点击新建数据库链接后,输入数据库链接的相关参数:服务器名、认证信息、数据库名:测试
注:考虑到WPF的Config文件是直接可打开浏览的,则选择第一个选项,在数据库链接字符串里把密码隐藏,之后在应用中指定密码;spa
目前涉及到3个须要起名字的地方:
一个是 Item Name;
一个是 在App.Config 中字符串名称;
一个是 Model Namespace; (此名称具体做用还须要后续学习)
选择须要建模型的数据库表,能够把 HumanResources,Person,Production,Purchasing,Sales 所有都选上;而后点击肯定;
须要等待一段时间。。。
这里出现有2个错误提示: (错误缘由是EF目前不支持SQL Server的Hierarchyid字段,后续再考虑有什么办法)
至此,把数据模型创建在Model这个库里已经完成。
采用网友:普通的地球人 所提出的Bootstrap风格的WPF样式
http://www.javashuo.com/article/p-fdsyumjq-gh.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 引用;