Entity Framework 简介

转贴:链接https://www.cnblogs.com/davidzhou/p/5348637.html

侵删,谢谢

第一篇:Entity Framework 简介

     先从ORM说起吧,很多年前,由于.NET的开源组件不像现在这样发达,更别说一个开源的ORM框架,出于项目需要,以及当时OOP兴起(总不至于,在项目里面全是SQL语句),就自己开始写ORM框架。要开发ORM框架首先要了解ORM概念。

ORM 对象关系映射,O(Object) 对象,在项目中就是实体,更加精确的来说就是数据Model,也可以说持久化类。R(Relation) 关系数据,M (Mapping)映射,将对象映射到关系数据,将关系数据映射到对象的过程。

更加直观理解就是,ORM 就是以OOP思想,产生增删改查SQL语句

了解ORM概念之后,你会发现,其实ORM框架,主要难点在M映射部分

  O 创建简单的实体对象就可以

  R 关系数据库中数据表

  M 难点要如何把实体对象与关系数据库具体数据表关联起来,然后产生相应数据库操作SQL?

 当时,幸好.NET 有两样技术比较流行

1. 特性

2. 反射

当时主要利用 特性 来标识 实体 映射 具体数据库 TableName ,属性 对应的 具体表的ColumnName,还有主外建,是否自增量,默认值 等等,都用特性来标识。

将实体,属性上的特性反射后,然后根据增删改查操作方法,就可以产生对应的SQL语句。

至此一个简单的ORM框架,就有了。

这几年,.NET 技术有了飞速发展,有很多写得不错的开源组件如雨后春笋般涌现,也包含ORM框架

Hibernate , Drapper,EntityFramework 等等

EntityFramework 版本历史简介

EF版本.net framework和IDE版本主要功能
EF(or EF3.5)Visual Studio 2008 SP1 (.NET 3.5 SP1)基本的O/R映射支持,使用DB First开发模式
EF 4Visual Studio 2010 (.NET 4.0)支持POCO实体 
延迟加载 
提高单元测试能力 
自定义的代码生成机制 
支持Model First开发模式
EF 4.1NuGet提供简化的DbContext接口 
支持Code First开发模式
EF 4.1.1过渡版本支持Power Tools工具
EF 4.2过渡版本解决bug并优化
EF 4.3Visual Studio 2010 (.NET 4.0)基于Code First开发模式的代码迁移策略 Migrations
EF 4.3.1Visual Studio 2012 (.NET 4.5)提供对 LocalDb 数据库的支持
EF 5Visual Studio 2012 (.NET 4.5)提供对枚举类型的支持 
Table-Valued functions表值函数 
空间数据类型(spatial types) 
整体性能优化提升 
实体模型设计器、多图模型 
批量导入存储过程
EF 6Visual Studio 2013 (.NET 4.5)Power Tools加强 
EF脱离Visual Studio和.NET通过NuGet单独发布 
可配置不稳定连接的重试次数等 
支持.NET 4.5中基于Task的异步编程模式 Async Query and Save 
优化的配置选项 Code-Based Configuration 
支持依赖注入和服务定位 Dependency Resolution 
低级的EF拦截器及SQL日志 Interception/SQL Loggin 
使用Mock单元测试 
using a mocking framework or writing your own test doubles 
使用已有的DbConnection创建DbContext 
提升事务支持 Improved Transaction Support  
优化LINQ to Entities查询性能 
优化(View Generation)性能 
支持自定义实现Entity的Equals和GetHashCode方法 
DBSet.AddRange/RemoveRange 
DbChangeTracker.HasChanges 
扩展的SqlFunctions,SqlCeFunctions
EF 6.0.1Visual Studio 2013 (.NET 4.5)fix some performance issues during warm-up for EF models.
EF 6.0.2Visual Studio 2013 (.NET 4.5)The tooling for Visual Studio 2012 and Visual Studio 2013 is 
available on the Microsoft Download Center. You only need to 
install the tooling if you want to use Model First or Database First
EF 6.1Visual Studio 2013 (.NET 4.5)

Tooling consolidation provides a consistent way to create a new EF model. This feature extends the ADO.NET Entity Data Model wizard to support creating Code First models, including reverse engineering from an existing database. These features were previously available in Beta quality in the EF Power Tools.

Handling of transaction commit failures provides theCommitFailureHandler which makes use of the newly introduced ability to intercept transaction operations. The CommitFailureHandler allows automatic recovery from connection failures whilst committing a transaction

IndexAttributeallows indexes to be specified by placing an [Index] attribute on a property (or properties) in your Code First model. Code First will then create a corresponding index in the database

The public mapping API provides access to the information EF has on how properties and types are mapped to columns and tables in the database. In past releases this API was internal

EntityFramework 刚刚出来时,反响就比较不错。那时我有接触一些,不多,也不知道当时为什么这么好的东西,没有深耕一下。

2014 年,去了一家创业公司,做技术主管,做架构开发,当时定的 ASP.NET MVC 5&Entity Framework 6做开发框架。

再次了解到EntityFramework的强大。

Entity Framework 有三种实作方式

1. DataBase First 数据库先行

2. Model First  模型先行

3. Code First 代码先行

前两种就是拖控件,按照指引一步步,就可以完成Entity Framework 实现。

Code First 就是代码纯手工打造。

Entity Framework 介绍暂时介绍完成,我们这个系列实作Entity Framework 方式是Code First,因为Code First 才能更加深入了解Entity Framework 工作原理。

我们这个系列采用是 Entity Framework 6.1 版本,最后这几个版本区别不大。

CodePlex : http://entityframework.codeplex.com/

GitHub : https://github.com/aspnet/EntityFramework/

开发指南:https://docs.efproject.net/en/latest/

敬请期待

第二篇:Entity Framework CodeFirst & Model 映射

    前一篇 第一篇:Entity Framework 简介 我有讲到,ORM 最关键的 Mapping,也提到了最早实现Mapping的技术,就是 特性 + 反射,那Entity Framework 实现Mapping 又是怎样的呢? EntityFramework 实现Mapping 有两种方式。

    1. 数据注解(DataAnnotations)

    2. Fluent API

一. 数据注解,这种方式,就是在实体和属性加上一些EntityFramework 定义好的一些特性,然后EntityFramework,在具体操作数据库时进行反射。跟我们上篇提到 特性+反射 一样的方案。因此今天不会在这篇讲 DataAnnotations 。会贴一点实例代码。

比较要注意的是,实现 DataAnnotations ,要引用 System.ComponentModel.DataAnnotations 命名空间。

实例代码如下,特殊说明一下,EntityFramework 支持 .Net 可为空表达法,如 int?,DateTime? 。下面代码 最后修改时间 LastModifiedDateTime 就是这样。

 

 

复制代码

using System;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;namespace EntityFrameworkSample.Models
{[Table("Sample_Order")] //标示为 表名//[Table("Sample_Order", Schema = "dbo")] //标示为 表名 ,表的拥有者public class OrderModel{[Key]//标示为 主键[DatabaseGenerated(DatabaseGeneratedOption.Identity)] // 标示为 自动增量public Guid OrderGuid { get; set; }[Required] //标示为 必填[MaxLength(30)] //标示为 字符串长度最大30public string OrderNo { get; set; }[Required] //标示为 必填[MaxLength(20)] //标示为 字符串长度最大30public string OrderCreator { get; set; }[Required][DatabaseGenerated(DatabaseGeneratedOption.Identity)] // 标示为 自动增量 数据库有默认值 getdate()public DateTime OrderDateTime { get; set; }[Required]public string OrderStatus { get; set; }[MaxLength(1000)]public string Description { get; set; }[Required][MaxLength(20)] //标示为 字符串长度最大30public string Creator { get; set; }[Required]public DateTime CreateDateTime { get; set; }public string LastModifier { get; set; }public DateTime? LastModifiedDateTime { get; set; }}
}

复制代码

 

看吧,数据注解(DataAnnotations ),就是旧技术换一个叫法而已。没有什么大不了。其他的就靠大家去摸索了。

二 . Fluent API  查了一下百度翻译,“流畅的API” ,我不知道这个翻译贴不贴不切,我就以我使用Fluent API 经验说说,Fluent API 比 数据注解好的地方。

    1. 大家再看一眼上面代码,是不是感觉有点不纯净了,本来一个干干净净的类,搞得乱乱的。感觉有点恶心。

    2. 这一点可能要后面我贴出代码,分享源代码才理解,不过使用过EntityFramework Fluent API 的应该能够理解到,配置和类分离,职责更加单一。

   3. 配置和类分离,扩展性,灵活性就会更好,大家多知道,EntityFramework 不仅支持Sql Server,支持Oracle,MySql,Sqlite 等这些流行数据库,每种产品配置也许都有细微差别,如果以 DataAnnotations 方式实作,那我岂不是要重新新增模型,一样的表设计,为什么要加呢? 只有配置不同才要加啊! 

  4. 做技术架构,这种方式封装也比较好,怎么好大家如果是做架构的话,两种方式都用一下,感受一下。

废话不多说了,直接贴出实现 Fluent API 的流程,以及代码。

1. 创建数据库“EntityFrameworkSample”

2. 在数据库“EntityFrameworkSample”中,加表“Sample_Order”,然后向表中新增所需要的字段。

3. 新建解决方案 “EntityFrameworkSample” 

4. 在解决方案中 新增“EntityFrameworkSample.DbContext” (配置最终使用地方),“EntityFrameworkSample.Models”(纯净数据Model),“EntityFrameworkSample.Mappings” (映射配置)三个类库项目

5. 在“EntityFrameworkSample.DbContext” ,“EntityFrameworkSample.Mappings”  项目中,通过NuGet 安装EntityFramework 最新版本。

6. 在 “EntityFrameworkSample.DbContext” 项目中,新增“EntityFrameworkSampleDbContext” DbContext 类,

    在“EntityFrameworkSample.Models” 项目中,新增“OrderModel” Model类,

    在“EntityFrameworkSample.Mappings”项目中,新增“OrderMap” 映射配置类。

三个项目 代码图 和引用关系如下图

三个类的代码分别如下

EntityFrameworkSampleDbContextusing System.Data.Entity;using EntityFrameworkSample.Mappings;

复制代码

using EntityFrameworkSample.Models;namespace EntityFrameworkSample.DbContext
{public class EntityFrameworkSampleDbContext:System.Data.Entity.DbContext{public EntityFrameworkSampleDbContext(): base("EntityFrameworkSampleConnection"){}public DbSet<OrderModel> orders { get; set; }protected override void OnModelCreating(DbModelBuilder modelBuilder){modelBuilder.Configurations.Add(new OrderMap());base.OnModelCreating(modelBuilder);}}
}

复制代码

OrderModel

复制代码

using System;namespace EntityFrameworkSample.Models
{public class OrderModel{     public Guid OrderGuid { get; set; }public string OrderNo { get; set; }public string OrderCreator { get; set; }public DateTime OrderDateTime { get; set; }public string OrderStatus { get; set; }public string Description { get; set; }public string Creator { get; set; }public DateTime CreateDateTime { get; set; }public string LastModifier { get; set; }public DateTime LastModifiedDateTime { get; set; }}
}

复制代码

OrderMap

复制代码

using System.ComponentModel.DataAnnotations.Schema;
using System.Data.Entity.ModelConfiguration;
using EntityFrameworkSample.Models;namespace EntityFrameworkSample.Mappings
{public class OrderMap : EntityTypeConfiguration<OrderModel>{public OrderMap(){this.HasKey(m => m.OrderGuid);this.Property(m => m.OrderGuid).HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity);this.Property(m => m.OrderNo).IsRequired().HasMaxLength(30);this.Property(m => m.OrderCreator).IsRequired().HasMaxLength(20);this.Property(m => m.OrderStatus).IsRequired().HasMaxLength(30);this.Property(m => m.Description).HasMaxLength(1000);this.Property(m => m.Creator).IsRequired().HasMaxLength(20);this.Property(m => m.LastModifier).HasMaxLength(15).HasMaxLength(20);this.ToTable("Sample_Order");this.Property(m => m.OrderGuid).HasColumnName("OrderGuid");this.Property(m => m.OrderNo).HasColumnName("OrderNo");this.Property(m => m.OrderCreator).HasColumnName("OrderCreator");this.Property(m => m.OrderDateTime).HasColumnName("OrderDateTime");this.Property(m => m.OrderStatus).HasColumnName("OrderStatus");this.Property(m => m.Description).HasColumnName("Description");this.Property(m => m.Creator).HasColumnName("Creator");this.Property(m => m.CreateDateTime).HasColumnName("CreateDateTime");this.Property(m => m.LastModifier).HasColumnName("LastModifier");this.Property(m => m.LastModifiedDateTime).HasColumnName("LastModifiedDateTime");}}
}

复制代码

至此解决方案此阶段所有代码就完成了。

 大概讲一下一些注意点。

1. EntityFrameworkSampleDbContext 必须要继承 DbContext,并重写OnModelCreating方法,来完成映射.

2. OrderMap 必须继承EntityTypeConfiguration<>泛型类,泛型类型 OrderModel,大概告诉Map映射的是OrderModel。

好了,这篇内容结束了,不足的地方,我没有列出Fluent API 所有api,主要是表与表的关系是如何映射的,这些希望读者,能够自己去摸索,篇幅有限,

还有就是DbContext 我也没有在这篇详细介绍,会在真正讲到DbContext那篇在详细跟大家介绍。

随笔 - 27  文章 - 1  评论 - 184

第三篇:Entity Framework CodeFirst & Model 映射 续篇 EntityFramework Power Tools 工具使用

     上一篇 第二篇:Entity Framework CodeFirst & Model 映射 主要介绍以Fluent API来实作EntityFramework CodeFirst,得到了大家一些支持,其中就有一位同学就提出。熟悉了EntityFramework CodeFirst 原理,就可以用微软的工具来生产代码。是的,今天就来讲一下,由微软EntityFramework小组开发的为EntityFramework CodeFirst Visual Studio小插件 “Entity Framework Power Tools”.

     Entity Framework Power Tools 现在Bate4 版,估计也不会更新,因为现在紧锣密鼓的 开发Entity Framework 7。不过没有关系,Bate4 已经很稳定了,很能够解决Fluent API 繁琐的Model,Mapping 创建的工作。是一款很不错生产力工具,下面就听我慢慢的讲怎么用咯。

  一. Entity Framework Power Tools Bate4 安装

 1. 打开Visual Studio 2013 ,选择 工具 菜单,再选择 扩展和更新。

 

2. 选择左边菜单的联机——在右上的搜索栏中输入 power tool ,在搜索结果中找到,Entity Framework Power Tools Bate4 下载安装,然后重启。

如果家里网速不行,搜索 转了半天 也不出来的话,我这里也提供独立安装包 下载 :http://files.cnblogs.com/files/davidzhou/EFPowerTools.zip 解压安装即可。

二. Entity Framework Power Tools 的使用

1. 重新打开 Visual Studio 2013 ,新建 “EntityFrameworkPowerToolsSample” 解决方案,然后添加“EntityFrameworkPowerTools.Models” 类库项目。

2. 右击 “EntityFrameworkPowerTools.Models” 类库项目,会多出来一个“Entity Framework” 菜单

选择 “Entity Framework” 菜单下的“Reverse Engineer Code First” 选项,会弹出 数据库 连接属性界面,配置你要连接的数据库服务器,数据库。

我这里配置的是,我本机的 “EntityFrameworkSample” 数据库。

点击 “确定” 不出意外就会产生Entity Framework CodeFirst 相关的代码。如果没有安装Entity Framework,在生成之前会自动给安装。

3. 生成代码如下

    Sample_Order (数据模型)

复制代码

using System;
using System.Collections.Generic;namespace EntityFrameworkPowerTools.Models.Models
{public partial class Sample_Order{public System.Guid OrderGuid { get; set; }public string OrderNo { get; set; }public string OrderCreator { get; set; }public System.DateTime OrderDateTime { get; set; }public string OrderStatus { get; set; }public string Description { get; set; }public string Creator { get; set; }public System.DateTime CreateDateTime { get; set; }public string LastModifier { get; set; }public Nullable<System.DateTime> LastModifiedDateTime { get; set; }}
}

复制代码

  Sample_OrderMap (映射配置)

复制代码

using System.Data.Entity.ModelConfiguration;namespace EntityFrameworkPowerTools.Models.Models.Mapping
{public class Sample_OrderMap : EntityTypeConfiguration<Sample_Order>{public Sample_OrderMap(){// Primary Keythis.HasKey(t => t.OrderGuid);// Propertiesthis.Property(t => t.OrderNo).IsRequired().HasMaxLength(30);this.Property(t => t.OrderCreator).IsRequired().HasMaxLength(20);this.Property(t => t.OrderStatus).IsRequired().HasMaxLength(30);this.Property(t => t.Description).HasMaxLength(1000);this.Property(t => t.Creator).IsRequired().HasMaxLength(20);this.Property(t => t.LastModifier).HasMaxLength(20);// Table & Column Mappingsthis.ToTable("Sample_Order");this.Property(t => t.OrderGuid).HasColumnName("OrderGuid");this.Property(t => t.OrderNo).HasColumnName("OrderNo");this.Property(t => t.OrderCreator).HasColumnName("OrderCreator");this.Property(t => t.OrderDateTime).HasColumnName("OrderDateTime");this.Property(t => t.OrderStatus).HasColumnName("OrderStatus");this.Property(t => t.Description).HasColumnName("Description");this.Property(t => t.Creator).HasColumnName("Creator");this.Property(t => t.CreateDateTime).HasColumnName("CreateDateTime");this.Property(t => t.LastModifier).HasColumnName("LastModifier");this.Property(t => t.LastModifiedDateTime).HasColumnName("LastModifiedDateTime");}}
}

复制代码

 EntityFrameworkSampleContext (DbContext)

复制代码

using System.Data.Entity;
using System.Data.Entity.Infrastructure;
using EntityFrameworkPowerTools.Models.Models.Mapping;namespace EntityFrameworkPowerTools.Models.Models
{public partial class EntityFrameworkSampleContext : DbContext{static EntityFrameworkSampleContext(){Database.SetInitializer<EntityFrameworkSampleContext>(null);}public EntityFrameworkSampleContext(): base("Name=EntityFrameworkSampleContext"){}public DbSet<Sample_Order> Sample_Order { get; set; }protected override void OnModelCreating(DbModelBuilder modelBuilder){modelBuilder.Configurations.Add(new Sample_OrderMap());}}
}

复制代码

怎么样是不是代码,跟上一篇,代码差不多啊。只是文件的名称不同而已,如果想调整项目结构,像上一篇一样,你可以把 EntityFramework Power Tools 生产代码拷贝过去,稍作调整就可以了。

当然EntityFramework Power Tools 还可以自定义模板,跟自己写T4模板一样,来实现自己想要规则。我这里就不再做详细讲解了,大家自己摸索一下。

 然后本篇的源代码 : http://pan.baidu.com/s/1c2K4R8s

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/439409.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Python学习】 - pyecharts包 - 地图可视化

安装&#xff1a; https://pan.baidu.com/s/1vAlSjVbHt0EDJY6C_38oEA 提取码&#xff1a;t9be 在这个链接中下载对应的.whl文件&#xff0c;放到下图所示的目录中。 然后打开anaconda prompt 找到对应的目录&#xff0c;输入&#xff1a; pip install pyecharts-0.1.9.4-py…

【机器学习】 - 关于图像质量评价IQA(Image Quality Assessment)

图像质量评价&#xff08;Image Quality Assessment,IQA&#xff09;是图像处理中的基本技术之一&#xff0c;主要通过对图像进行特性分析研究&#xff0c;然后评估出图像优劣&#xff08;图像失真程度&#xff09;。 主要的目的是使用合适的评价指标&#xff0c;使得评价结果…

【机器学习】 - CNN

什么是卷积神经网络&#xff0c;它为何重要&#xff1f; 卷积神经网络&#xff08;也称作 ConvNets 或 CNN&#xff09;是神经网络的一种&#xff0c;它在图像识别和分类等领域已被证明非常有效。 卷积神经网络除了为机器人和自动驾驶汽车的视觉助力之外&#xff0c;还可以成功…

Asp.Net中WebForm与MVC,Web API模式对比

webform&#xff0c;web mvc和web api都是asp.net官方的三套框架&#xff0c;想对比下三者的关系&#xff0c;查了下资料&#xff0c;web api跟web mvc基本同属一脉&#xff0c;只是mvc多了一个视图渲染&#xff0c;网上有些博客介绍了webform和mvc底层源码实现的不同&#xff…

【机器学习】 - Keras学习 - TensorBoard模块 - 可视化模型训练过程神器

运行环境&#xff1a;Win10 anaconda3。 TensorFlow版本&#xff1a;2.0.0 import numpy as np import tensorflow as tf import tensorflow.keras from tensorflow.keras.models import Sequential from tensorflow.keras.layers import Dense import matplotlib.pyplot as…

无废话SharePoint入门教程一[SharePoint概述]

一、前言 听说SharePoint也有一段时间了&#xff0c;可一直处在门外。最近被调到SharePoint实施项目小组&#xff0c;就随着工作一起学习了一下实施与开发。但苦于网上SharePoint入门的东西实在太少&#xff0c;导致自学入门很难&#xff0c;不知道SharePoint这东西到底能做什么…

SharePoint 站点结构及概念

简单的记录一下Sharepoint的结构与基本概念 一、服务器场 服务器场,即主机的集群.简单点说就是两台机器互相备份&#xff0c;两个或几台机器之间有心跳线&#xff0c;定时检测对端设备的情况&#xff0c;如果对端设备出现故障&#xff0c;一台机器就会接管出问题机器的受保护…

【Python学习】 - sklearn学习 - 自带数据集sklearn.datasets.x

sklearn 的数据集有好多个种 自带的小数据集&#xff08;packaged dataset&#xff09;&#xff1a;sklearn.datasets.load_可在线下载的数据集&#xff08;Downloaded Dataset&#xff09;&#xff1a;sklearn.datasets.fetch_计算机生成的数据集&#xff08;Generated Datas…

sharepoint 概念及认证方式介绍

3.SharePoint Web 应用程序 我个人的理解&#xff0c;SharePoint Web 应用程序&#xff08;SharePoint Web Application&#xff09;代表的是 SharePoint 网站&#xff08;集&#xff09;的物理容器。 SharePoint Web 应用程序需要指定内容数据库、宿主 IIS 应用程序池、应用…

我们可以用SharePoint做什么

前言 不知不觉作为一个SharePoint的开发人员若干年了&#xff0c;从SharePoint api 开始学习&#xff0c;到了解SharePoint的结构&#xff0c;逐渐一点点了解sharepoint的体系&#xff1b;从SharePoint 的2007到2010到2013到SharePoint Online都接触了一些。本文会从个人的视角…

SharePoint REST API - 确定REST端点URL

SharePoint REST端点URI的结构 在你能够通过REST访问SharePoint资源之前&#xff0c;首先你要做的就是找出对应的URI端点&#xff0c;如果你对Client API熟悉&#xff0c;有些时候也可以参考Client API去猜测构建&#xff0c;例如。 客户端对象模型的方法&#xff1a; List.G…

【机器学习】 - 各种人脸数据集下载地址及说明汇总

1. Olivetti Faces人脸数据集 由40个人组成&#xff0c;共计400张人脸&#xff1b; 每人的人脸图片为10张&#xff0c;包含正脸、侧脸以及不同的表情&#xff1b; 整个数据集就是一张大的人脸组合图片&#xff0c;下载地址&#xff1a;https://cs.nyu.edu/~roweis/data/olivet…

【机器学习】 - 激活函数与交叉熵Sigmoid, Softmax, binary_crossentropy, categorican_crossentropy区别

Content: 为什么需要激活函数&#xff1b;一个神经元在做什么&#xff1b;激活函数 SigmoidSoftmax 4. 交叉熵损失函数 Binary cross-entropyCategorican cross-entropy为什么需要激活函数&#xff1a; Ans: 为了引入非线性变换。 如下图所示的红线和蓝线&#xff0c;在这个…

SharePoint 2013 Farm 安装指南——Least Privilege

写过很多关于SharePoint 2013 安装&#xff0c;这是第四篇。可能你会觉得为什么如此简单的安装至于花那么多精力去折腾吗。我的答案是肯定的。知识的积累不是一蹴而就的&#xff0c;而是循序渐进的去学习&#xff0c;每一个阶段都有独立的思考&#xff0c;于是乎第四篇SharePoi…

【机器学习】 - 关于Keras的深入理解

1.keras中使用相同的loss与metrics&#xff0c;都指定为mse&#xff0c;为什么训练时每轮完成后它们数值不一样&#xff1f; 答&#xff1a; 此时的loss是指完成最后一个batch后得到的这轮epoch的loss的加权平均&#xff0c;权重就是每个batch的样本数&#xff0c;&#xff08…

SharePoint 2007 and 2010 的服务器场的端口

由于要把一台SharePoint Server放到外网去,就把IP改到DMZ区了,结果除了系统管理员,其他帐号都无法验证通过,肯定是一些端口没开. 网上一查,SharePoint所需要的端口还真多,不过Client和WFE之间的应该开放80和443就OK了,其余的都是SharePoint Server之间,或者和 公司网络环境的…

【Python学习】 - 使用Anaconda的Spyder查看某些函数的原型的6种方法汇总

1.Ctrl鼠标点击函数名&#xff08;对应的函数名会加下划线&#xff09; 或 Ctrlg 2.help(function) 在某些情况下方法1失效&#xff0c;比如TensorFlow中的一些函数tf.constant&#xff0c;他只会跳转到一个init文件&#xff0c;并不会展示函数原型。 所以可以这样help(tf.co…

关于报错:'nvidia-smi' 不是内部或外部命令,也不是可运行的程序 或批处理文件。

使用cmd查看电脑显卡的信息&#xff0c;调用nvidia-smi查看显卡使用情况报错如下&#xff1a; 因为它找不到该命令。这个文件是一个exe文件&#xff0c;一般都在下面这个文件夹中。 C:\Program Files\NVIDIA Corporation\NVSMI 所以想要使用该命令必须要能得到这个文件夹&…

SharePoint网站集备份与恢复

下面是操作过程&#xff1a;尝试三是成功的 尝试一&#xff1a;移动网站集&#xff08;无效&#xff09; 向Web应用程序新增了一个数据库&#xff0c;把网站集迁移到新数据库里&#xff1b; Get-SPSite -ContentDatabase <SourceContentDb> | Move-SPSite -Destination…

【机器学习】 - 使用dlib进行人脸定位,人脸检测,给人脸图片戴口罩

detector dlib.get_frontal_face_detector() 功能&#xff1a;人脸检测画框 参数&#xff1a;无 返回值&#xff1a;默认的人脸检测器 faces detector(img_gray, 0) 功能&#xff1a;对图像画人脸框 参数&#xff1a;img_gray&#xff1a;输入的图片 返回值&#xff1a;人脸…