优化体验之使用visual EDM之映射存储过程,datatype to Enum
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的更多相关文章
- 一次千万级别的SQL查询简单优化体验
背景:从两张有关联的表查询数据,A表数据量1400万,B表数据量8000万.A与B通过ID逻辑关联,没有实际的外键.B表是后来扩展出来的. 问题:根据某个ID查询时超时,运行时跑不出结果. 原因:使用 ...
- WPF优化体验<一>
最近将一个开发和维护了五年的一个Winform项目进行重构,考虑到最近很流行将用户体验挂在嘴上,于是采用了WPF技术,希望能在外观和体验上有一个全新的效果. 以前使用Winform的时候内存控制得不错 ...
- WPF优化体验<一>(转)
最近将一个开发和维护了五年的一个Winform项目进行重构,考虑到最近很流行将用户体验挂在嘴上,于是采用了WPF技术,希望能在外观和体验上有一个全新的效果. 以前使用Winform的时候内存控制得不错 ...
- Fedora20 优化体验
玩了些许天的fedora系统,到底是加深了对于linux系统的了解 为了便于大家对于fedora系统支持,我将这些天对于fedora的一些不适之处及改进的策略进行了一下小总结.便于新手对于fedora ...
- Cocos开发中性能优化工具介绍之Visual Studio内存泄漏检测工具——Visual Leak Detector
那么在Windows下有什么好的内存泄漏检测工具呢?微软提供Visual Studio开发工具本身没有什么太好的内存泄漏检测功能,我们可以使用第三方工具Visual Leak Detector(以下简 ...
- 前端性能和加载体验优化实践(附:PWA、离线包、内存优化、预渲染)
一.背景:页面为何会卡? 1.1 等待时间长(性能) 项目本身包/第三方脚本比较大. JavaScript 执行阻塞页面加载. 图片体积大且多. 特别是对于首屏资源加载中的白屏时间,用户等待的时间就越 ...
- Visual Studio 2015官方汇总包括下载和视频
7月20日 23:30 Visual Studio 2015正式版正式发布,作为微软新一代开发利器,在全地球乃至全宇宙乃至全太阳系中最强大 且没有之一的IDE(上述描述来自微博用户评论)跨平台支持成 ...
- 使用Visual Studio进行 Android开发的十大理由
[原文发表地址]Top 10 reasons to use Visual Studio for C++ Android Development! Visual Studio: C++跨平台的移动解决方 ...
- WeTest功能优化第2期:云真机智能投屏,调试告别鼠标
第2期功能优化目录 [云真机视频映射]云真机画面本地映射[兼容性测试报告]新增问题机型聚类功能[新增Android9.0]同步上线最新安卓系统 本期介绍的云测产品功能优化,既有重磅级技术突破,也有报告 ...
随机推荐
- python的socket编程之udp编程
在上篇文章中,仅仅讲述了如何进行了TCP编程,在本章中,将讲述使用udp进行编码,先看如下的代码,服务器端: root@python 513]# cat serverudp.py #!/usr/bin ...
- HTTP接口开发专题一(四种常见的 POST 提交数据方式对应的content-type取值)
application/x-www-form-urlencoded 这应该是最常见的 POST 提交数据的方式了.浏览器的原生 form 表单,如果不设置 enctype 属性,那么最终就会以 app ...
- 跟我学算法-SVM(支持向量机)
支持向量机是一个点离决策边界越近,离决策面越远的问题 求解的过程主要是通过拉格朗日乘子法,来求解带约束的优化问题,在问题中涉及两个方面,一个是线性的,一个是非线性的,非线性的有 我们平时比较常见的高斯 ...
- Oracle 相关知识点结构图
最近在学Oracle数据库,制作了些结构图方便记忆!主要涉及到Oracle数据类型,Oracle的表操作以及Oracle的游标,还有的之后再分享...... Oracle 数据类型 因为图片上只能看到 ...
- Python进程监控-MyProcMonitor
psutil api文档: http://pythonhosted.org/psutil/ api 测试 #! /usr/bin/env python # coding=utf-8 import ps ...
- 从socket开始讲IOS网络编程
home list tags talk user rss Mac&iOS Socket 大纲 一.Socket简介 二.BSD Socket编程准备 1.地址 2.端口 3.网络字节序 4.半 ...
- WCF配置多个终节点
配置多个终节点的意义(自己理解):一个服务可以有多个终节点,网上也经常有人说终节点才是服务的真正的接口,的确如此,当我们为一个服务配置多个终节点时,就表明这个服务可以被以不同的方式访问(不同的绑定等等 ...
- MyBatis 体系结构
- Python与Go冒泡排序
#!/usr/bin/env python # -*- coding: utf-8 -*- # 冒泡排序法 def bubbling(array): # 时间复杂度:O(n^2) for i in r ...
- Spring注解配置Aop
之前学习了SpringAop的基本原理.http://www.cnblogs.com/expiator/p/7977975.html 现在尝试使用注解来配置SpringAop. Aop,面向切面编程. ...