• 个人 WPF+EF(DBFirst) 简单应用开发习惯及EF学习测试(备忘) -- 1


    内容:记录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 引用;

  • 相关阅读:
    关于Dll、Com组件、托管dll和非托管dll的理解
    委托-异步调用-泛型委托-匿名方法-Lambda表达式-事件
    类静态和实例化执行顺序优先级(静态构造函数、静态变量、静态方法)
    ActionFilter的四个方法使用场景
    C# 中? 和 ?? 在变量中的使用
    Nginx 安装配置
    jetty + maven + (frontend) + eclipse
    plsql function
    [Postgres] drop database , but the database is being accessed by other users
    js在table中添加tbody块,方便整块的添加和删除
  • 原文地址:https://www.cnblogs.com/jacky-zhang/p/8444140.html
Copyright © 2020-2023  润新知