zoukankan      html  css  js  c++  java
  • EF core 学习笔记



    应该 以领域 为核心开发程序, 不应该 以数据库

    entityframeworkcore

    entityframeworkcore.sqlserver

    entityframeworkcore.tool









    entityframeworkcore.tool很重要, 没有这句话,无法进行数据迁移. 数据迁移



    get-help entityframeworkcore这句指令是万能 的,一有不会就要 点这个查询指令


    数据迁移指令
    1.Add-Migration Initial

    2.Update-Database


    开发环境的连接字符串写在这里



    将web项目作为启动项目


    控制台 设置Data





    用cityid 和 companyid 做联合主键



    用 fluent api 方式配置 主 外键







    Int Id在数据库 默认为主键, 数据库会自增的。



    这种写法 dbContext会自动 dispose的








    批量操作,只能是1000条 命令最多




    只有tolist的时候,才会真正的查询。 才会到数据库中 执行


    查询的 linq 和lambda 写法 。




    参数化使用lambda查询,



    会执行查询的 lambda 方法



    会执行查询的非 lambda的方法





    用find 方法 查询 的好处 是 ,find 是dbset 的方法,如果dbcontent 有追踪该实体的话, 可以在内存中直接查,不需要 去数据库查询。

    模糊查询的第1种方法



    模糊查询的第2中方法



    lastordefault 语句,必须要和 order by 配合。 因为 性能问题 。


    修改这里




    因为db2没有跟踪db1查询的查询出来的实体,所以叫做  修改离线数据

    修改离线数据,会修改除了 id 主键以外的数据。



    这个 没有讲,可以去官方文档看 。



    省份表 和城市表 是通过 省份id这个外键关联起来的



    //级联, 增加离线数据 ,必须使用外键!






    where +tolist()的效果 ,等同于 firstordefault ()效果

    查询关联数据 有这几种方法 :


    1.预加载 ,在一次查询中 ,使用include属性。把 关联数据,一次性加载出来


    2.查询映射   Query Projections


    quick watch 是个 好东西,哈哈哈 。

    使用 修改离线 的 关联数据时, 必须要用状态版,修改。


    否则 在该 例子中, 修改成都的时候,vs 会顺便修改 四川省的其他 城市数据

    3.显示加载,在内存中已经有 数据了,然后再数据库中 查询 关联数据



    .net core 2.1的 知识



    更改主键的修改,在数据库 ,就是先删除,后插入 。

    主键为 guid 时,应该 这样写 修改


  • 相关阅读:
    用最简单的例子理解装饰器模式(Decorator Pattern)
    用最简单的例子理解迭代器模式(Iterator Pattern)
    用最简单的例子理解观察者模式(Observer Pattern)
    用最简单的例子理解单例模式(Singleton Pattern)
    用最简单的例子理解对象为Null模式(Null Object Pattern)
    用最简单的例子理解策略模式(Strategy Pattern)
    使用Lazy<T>实现对客户订单的延迟加载
    C#关键字var是什么,在何种情况下使用
    C#中的IDisposable模式
    CLR基础,CLR运行过程,使用dos命令创建、编译、运行C#文件,查看IL代码
  • 原文地址:https://www.cnblogs.com/bingyizhihun/p/10078999.html
Copyright © 2011-2022 走看看