stored produce,datatype to Enum,Colored Entity,Multiple Diagrams

一:EDM给我们提供的强大功能

1. 存储过程的映射

直接灌sql到database,存在着网络传输。。。 较小了网络传输。。。

CURD,它都是用存储过程来实现的。。。。 Ctrip 5w+

当你Student.Add的时候,你调用s的是存储过程。。。。

----- delete ------------------

USE [SchoolDB]
GO
/****** Object: StoredProcedure [dbo].[sp_DeleteStudent] Script Date: 09/18/2016 17:07:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[sp_DeleteStudent]
-- Add the parameters for the stored procedure here
@StudentId int
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;

DELETE FROM [dbo].[Student]
where StudentID = @StudentId

END

----- insert ------------------

USE [SchoolDB]
GO
/****** Object: StoredProcedure [dbo].[sp_InsertStudentInfo] Script Date: 09/18/2016 17:07:39 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[sp_InsertStudentInfo]
-- Add the parameters for the stored procedure here
@StudentName varchar(50)
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;

INSERT INTO [SchoolDB].[dbo].[Student]([StudentName])
VALUES(@StudentName)

SELECT SCOPE_IDENTITY() AS StudentId

END

----- insert ------------------

USE [SchoolDB]
GO
/****** Object: StoredProcedure [dbo].[sp_UpdateStudent] Script Date: 09/18/2016 17:07:50 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[sp_UpdateStudent]
-- Add the parameters for the stored procedure here
@StudentId int,
@StudentName varchar(50)
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;

Update [SchoolDB].[dbo].[Student]
set StudentName = @StudentName
where StudentID = @StudentId;

END

db.Students.Add(new Student() { StudentName = "jack12345" }); => 调用存储过程。。。

using (SchoolDBEntities db = new SchoolDBEntities())
{
db.Database.Log = Console.WriteLine;

//db.Students.Add(new Student() { StudentName = "jack12345" });

var item = db.Students.FirstOrDefault(i => i.StudentName == "jack123");

//item.StudentName = "jack123";

db.Students.Remove(item);

db.SaveChanges();
}

我们既可以用隐射,也可以直接使用func函数。。。。

二:如何通过EDM将int转换成Enum。。。。

public partial class Teacher
{
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors")]
public Teacher()
{
this.Courses = new HashSet<Course>();
}

public int TeacherId { get; set; }
public string TeacherName { get; set; }
public Nullable<TeacherTypeEnum> TeacherType { get; set; }

[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")]
public virtual ICollection<Course> Courses { get; set; }
}

public enum TeacherTypeEnum : int
{
One = 1,
Two = 2,
Three = 3
}

using (SchoolDBEntities db = new SchoolDBEntities())
{
db.Database.Log = Console.WriteLine;

db.Teachers.Add(new Teacher()
{
TeacherName = "洪老师",
TeacherType = TeacherTypeEnum.Three
});

db.SaveChanges();
}

ConsoleApplication29.TestEnum

3. 给EDM中的类图画上颜色。。。

4. diagram类图太多,比如说上百个。。。。

优化体验之使用visual EDM之映射存储过程,datatype to Enum的更多相关文章

  1. 一次千万级别的SQL查询简单优化体验

    背景:从两张有关联的表查询数据,A表数据量1400万,B表数据量8000万.A与B通过ID逻辑关联,没有实际的外键.B表是后来扩展出来的. 问题:根据某个ID查询时超时,运行时跑不出结果. 原因:使用 ...

  2. WPF优化体验<一>

    最近将一个开发和维护了五年的一个Winform项目进行重构,考虑到最近很流行将用户体验挂在嘴上,于是采用了WPF技术,希望能在外观和体验上有一个全新的效果. 以前使用Winform的时候内存控制得不错 ...

  3. WPF优化体验<一>(转)

    最近将一个开发和维护了五年的一个Winform项目进行重构,考虑到最近很流行将用户体验挂在嘴上,于是采用了WPF技术,希望能在外观和体验上有一个全新的效果. 以前使用Winform的时候内存控制得不错 ...

  4. Fedora20 优化体验

    玩了些许天的fedora系统,到底是加深了对于linux系统的了解 为了便于大家对于fedora系统支持,我将这些天对于fedora的一些不适之处及改进的策略进行了一下小总结.便于新手对于fedora ...

  5. Cocos开发中性能优化工具介绍之Visual Studio内存泄漏检测工具——Visual Leak Detector

    那么在Windows下有什么好的内存泄漏检测工具呢?微软提供Visual Studio开发工具本身没有什么太好的内存泄漏检测功能,我们可以使用第三方工具Visual Leak Detector(以下简 ...

  6. 前端性能和加载体验优化实践(附:PWA、离线包、内存优化、预渲染)

    一.背景:页面为何会卡? 1.1 等待时间长(性能) 项目本身包/第三方脚本比较大. JavaScript 执行阻塞页面加载. 图片体积大且多. 特别是对于首屏资源加载中的白屏时间,用户等待的时间就越 ...

  7. Visual Studio 2015官方汇总包括下载和视频

     7月20日 23:30 Visual Studio 2015正式版正式发布,作为微软新一代开发利器,在全地球乃至全宇宙乃至全太阳系中最强大 且没有之一的IDE(上述描述来自微博用户评论)跨平台支持成 ...

  8. 使用Visual Studio进行 Android开发的十大理由

    [原文发表地址]Top 10 reasons to use Visual Studio for C++ Android Development! Visual Studio: C++跨平台的移动解决方 ...

  9. WeTest功能优化第2期:云真机智能投屏,调试告别鼠标

    第2期功能优化目录 [云真机视频映射]云真机画面本地映射[兼容性测试报告]新增问题机型聚类功能[新增Android9.0]同步上线最新安卓系统 本期介绍的云测产品功能优化,既有重磅级技术突破,也有报告 ...

随机推荐

  1. 在kindeditor 获取textarea 中 输入的值

    要在kindeditor 获取textarea 中 输入的值 必须在kindeditor创建的时候添加下面红色字体的代码     kindeditor创建代码如下: var editor;KindEd ...

  2. ffmpeg基本用法(转)

    FFmpeg FFmpeg 基本用法 本课要解决的问题 1.FFmpeg的转码流程是什么? 2.常见的视频格式包含哪些内容吗? 3.如何把这些内容从视频文件中抽取出来? 4.如何从一种格式转换为另一种 ...

  3. (一)Spring’s MVC Architecture

    Spring’s MVC module Spring’s MVC module is based on front controller design pattern followed by MVC ...

  4. /etc/rc5.d/s991local: line25: eject:command not found错误

      使用虚拟机安装centos出现错误,原因是我使用的镜像是最小级别的,没有图形化界面,只有终端窗口 有人用vmware安装minimal centos报错/etc/rc5.d/s99local : ...

  5. 在ios端点击按钮闪烁解决方法(小tips)

    在ios端,safari浏览器上触发click事件有300ms的延迟响应,为touch添加的样式会和click冲突而出现闪烁问题 在safari中触摸事件的相应顺序如下: touchstart --& ...

  6. Unity3D UI史

    http://www.cnblogs.com/hammerc/p/4837204.html 扫码时备注或说明中留下邮箱付款后如未回复请至https://shop135452397.taobao.com ...

  7. JLRoute 使用

    http://zhoulingyu.com/2016/01/03/iOS%E2%80%94%E2%80%94Scheme%E6%98%AF%E4%BB%80%E4%B9%88%E3%80%81%E6% ...

  8. XPath在python中的高级应用

    XPath在python的爬虫学习中,起着举足轻重的地位,对比正则表达式 re两者可以完成同样的工作,实现的功能也差不多,但XPath明显比re具有优势,在网页分析上使re退居二线. XPath介绍: ...

  9. Java 依赖注入标准(JSR-330)简介

    作者:88250 ,Vanessa 时间:2009 年 11 月 19 日      Java 依赖注入标准(JSR-330,Dependency Injection for Java)1.0 规范已 ...

  10. CS4.1 RPM打包函数分析

    shell举例说明:脚本名称叫test.sh 入参三个: 1 2 3运行test.sh 1 2 3后$*为"1 2 3"(一起被引号包住)$@为"1" &quo ...