如何搭建MVC + EF 框架
1、搭建MVC框架
1.1 VS2010:需要安装WPI 安装 ASP.NET MVC 4 和Visual Studio 2010 系统必备组件
如果上述链接无法打开,请访问:http://www.asp.net/mvc/tutorials/mvc-4/getting-started-with-aspnet-mvc4/intro-to-aspnet-mvc-4
如果VS2010 创建Web项目时,出现ASP.NET MVC 4 Web Application ,说明组件安装成功。
1.2 VS2012:无需安装任何组件
2、搭建EF框架
2.1 用SQL脚本创建数据库OumindBlog
USE [OumindBlog]
GO SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[Enumeration](
[e_id] [int] IDENTITY(1,1) NOT NULL,
[e_ename] [varchar](50) NOT NULL,
[e_cname] [varchar](50) NOT NULL,
[e_type] [varchar](50) NOT NULL,
[e_remark] [varchar](200) NOT NULL,
[e_addtime] [datetime] NOT NULL,
[e_delflag] [bit] NOT NULL,
CONSTRAINT [PK_enumeration] PRIMARY KEY CLUSTERED
(
[e_id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'枚举表id' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Enumeration', @level2type=N'COLUMN',@level2name=N'e_id'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'枚举英文名' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Enumeration', @level2type=N'COLUMN',@level2name=N'e_ename'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'枚举中文名' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Enumeration', @level2type=N'COLUMN',@level2name=N'e_cname'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'父枚举id' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Enumeration', @level2type=N'COLUMN',@level2name=N'e_type'
GO SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[BlogUser](
[Id] [int] IDENTITY(1,1) NOT NULL,
[LoginName] [nvarchar](50) NOT NULL,
[LoginPwd] [char](32) NOT NULL,
[CnName] [nvarchar](50) NOT NULL,
[Email] [nvarchar](50) NOT NULL,
[IsLock] [int] NOT NULL,
[IsDel] [bit] NOT NULL,
[AddTime] [datetime] NOT NULL,
[LastLoginTime] [datetime] NOT NULL,
CONSTRAINT [PK_BlogUser] PRIMARY KEY CLUSTERED
(
[Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'用户表主键ID' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BlogUser', @level2type=N'COLUMN',@level2name=N'Id'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'登录名' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BlogUser', @level2type=N'COLUMN',@level2name=N'LoginName'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'密码(md5_取16位)' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BlogUser', @level2type=N'COLUMN',@level2name=N'LoginPwd'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'中文名' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BlogUser', @level2type=N'COLUMN',@level2name=N'CnName'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'邮件地址' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BlogUser', @level2type=N'COLUMN',@level2name=N'Email'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'锁定标志' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BlogUser', @level2type=N'COLUMN',@level2name=N'IsLock'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'删除标志' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BlogUser', @level2type=N'COLUMN',@level2name=N'IsDel'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'新增时间' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BlogUser', @level2type=N'COLUMN',@level2name=N'AddTime'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'最后登录时间' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BlogUser', @level2type=N'COLUMN',@level2name=N'LastLoginTime'
GO SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[BlogArticleCate](
[Id] [int] IDENTITY(1,1) NOT NULL,
[Author] [int] NOT NULL,
[Name] [nvarchar](50) NOT NULL,
[Remark] [nvarchar](200) NULL,
[Statu] [int] NOT NULL,
[IsDel] [bit] NOT NULL,
[Addtime] [datetime] NOT NULL,
CONSTRAINT [PK_blog_article_cate] PRIMARY KEY CLUSTERED
(
[Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'文章类别表' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BlogArticleCate', @level2type=N'COLUMN',@level2name=N'Id'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'作者id' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BlogArticleCate', @level2type=N'COLUMN',@level2name=N'Author'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'博客分类名称' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BlogArticleCate', @level2type=N'COLUMN',@level2name=N'Name'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'博客分类介绍' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BlogArticleCate', @level2type=N'COLUMN',@level2name=N'Remark'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'状态 1-公开2-隐藏3-好友公开' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BlogArticleCate', @level2type=N'COLUMN',@level2name=N'Statu'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'删除标志' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BlogArticleCate', @level2type=N'COLUMN',@level2name=N'IsDel'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'新增时间' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BlogArticleCate', @level2type=N'COLUMN',@level2name=N'Addtime'
GO SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[BlogArticle](
[AId] [int] IDENTITY(1,1) NOT NULL,
[ACate] [int] NOT NULL,
[AAuthor] [int] NOT NULL,
[ATitle] [nvarchar](100) NOT NULL,
[AContent] [ntext] NOT NULL,
[AImgsrc] [nvarchar](200) NULL,
[APlnum] [int] NOT NULL,
[AAllowPL] [bit] NOT NULL,
[AIsTop] [bit] NOT NULL,
[ATag] [nvarchar](50) NULL,
[ACick] [int] NOT NULL,
[AStatu] [int] NOT NULL,
[AAddtime] [datetime] NOT NULL,
[AUpdatetime] [datetime] NOT NULL,
[AIsDel] [bit] NOT NULL,
[AHtmlSrc] [nvarchar](50) NULL,
CONSTRAINT [PK_blog_article] PRIMARY KEY CLUSTERED
(
[AId] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'文章表ID' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BlogArticle', @level2type=N'COLUMN',@level2name=N'AId'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'所属类别' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BlogArticle', @level2type=N'COLUMN',@level2name=N'ACate'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'作者' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BlogArticle', @level2type=N'COLUMN',@level2name=N'AAuthor'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'标题' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BlogArticle', @level2type=N'COLUMN',@level2name=N'ATitle'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'文章内容' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BlogArticle', @level2type=N'COLUMN',@level2name=N'AContent'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'评论数' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BlogArticle', @level2type=N'COLUMN',@level2name=N'APlnum'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'是否允许评论' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BlogArticle', @level2type=N'COLUMN',@level2name=N'AAllowPL'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'是否置顶' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BlogArticle', @level2type=N'COLUMN',@level2name=N'AIsTop'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'文章标签' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BlogArticle', @level2type=N'COLUMN',@level2name=N'ATag'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'点击次数' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BlogArticle', @level2type=N'COLUMN',@level2name=N'ACick'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'状态 1-公开2-隐藏3-好友公开' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BlogArticle', @level2type=N'COLUMN',@level2name=N'AStatu'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'创建时间' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BlogArticle', @level2type=N'COLUMN',@level2name=N'AAddtime'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'最后修改时间' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BlogArticle', @level2type=N'COLUMN',@level2name=N'AUpdatetime'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'删除标志' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BlogArticle', @level2type=N'COLUMN',@level2name=N'AIsDel'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'用来保存这篇文章的静态页面地址' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'BlogArticle', @level2type=N'COLUMN',@level2name=N'AHtmlSrc'
GO ALTER TABLE [dbo].[BlogArticle] ADD CONSTRAINT [DF_BlogArticle_APlnum] DEFAULT ((0)) FOR [APlnum]
GO ALTER TABLE [dbo].[BlogArticle] ADD CONSTRAINT [DF_blog_article_AllowPL] DEFAULT ((1)) FOR [AAllowPL]
GO ALTER TABLE [dbo].[BlogArticle] ADD CONSTRAINT [DF_blog_article_IsTop] DEFAULT ((0)) FOR [AIsTop]
GO ALTER TABLE [dbo].[BlogArticle] ADD CONSTRAINT [DF_BlogArticle_ACick] DEFAULT ((0)) FOR [ACick]
GO ALTER TABLE [dbo].[BlogArticle] ADD CONSTRAINT [DF_blog_article_Satu] DEFAULT ((2)) FOR [AStatu]
GO ALTER TABLE [dbo].[BlogArticle] ADD CONSTRAINT [DF_blog_article_Addtime] DEFAULT (getdate()) FOR [AAddtime]
GO ALTER TABLE [dbo].[BlogArticle] ADD CONSTRAINT [DF_BlogArticle_Updatetime] DEFAULT (getdate()) FOR [AUpdatetime]
GO ALTER TABLE [dbo].[BlogArticle] ADD CONSTRAINT [DF_blog_article_IsDel] DEFAULT ((0)) FOR [AIsDel]
GO ALTER TABLE [dbo].[BlogArticleCate] ADD CONSTRAINT [DF_blog_article_cate_Statu] DEFAULT ((1)) FOR [Statu]
GO ALTER TABLE [dbo].[BlogArticleCate] ADD CONSTRAINT [DF_blog_article_cate_Delflag] DEFAULT ((0)) FOR [IsDel]
GO ALTER TABLE [dbo].[BlogArticleCate] ADD CONSTRAINT [DF_BlogArticleCate_Addtime] DEFAULT (getdate()) FOR [Addtime]
GO ALTER TABLE [dbo].[BlogUser] ADD CONSTRAINT [DF_BlogUser_IsLock] DEFAULT ((0)) FOR [IsLock]
GO ALTER TABLE [dbo].[BlogUser] ADD CONSTRAINT [DF_BlogUser_IsDel] DEFAULT ((0)) FOR [IsDel]
GO ALTER TABLE [dbo].[BlogUser] ADD CONSTRAINT [DF_BlogUser_AddTime] DEFAULT (getdate()) FOR [AddTime]
GO ALTER TABLE [dbo].[BlogUser] ADD CONSTRAINT [DF_BlogUser_LastLoginTime] DEFAULT (getdate()) FOR [LastLoginTime]
GO ALTER TABLE [dbo].[Enumeration] ADD CONSTRAINT [DF_enumeration_e_addtime] DEFAULT (getdate()) FOR [e_addtime]
GO ALTER TABLE [dbo].[Enumeration] ADD CONSTRAINT [DF_enumeration_e_delflag] DEFAULT ((0)) FOR [e_delflag]
GO ALTER TABLE [dbo].[BlogArticle] WITH CHECK ADD CONSTRAINT [FK_BlogArticle_BlogArticleCate] FOREIGN KEY([ACate])
REFERENCES [dbo].[BlogArticleCate] ([Id])
GO
ALTER TABLE [dbo].[BlogArticle] CHECK CONSTRAINT [FK_BlogArticle_BlogArticleCate]
GO ALTER TABLE [dbo].[BlogArticle] WITH CHECK ADD CONSTRAINT [FK_BlogArticle_BlogUser] FOREIGN KEY([AAuthor])
REFERENCES [dbo].[BlogUser] ([Id])
GO
ALTER TABLE [dbo].[BlogArticle] CHECK CONSTRAINT [FK_BlogArticle_BlogUser]
GO ALTER TABLE [dbo].[BlogArticle] WITH CHECK ADD CONSTRAINT [FK_BlogArticle_Enumeration] FOREIGN KEY([AStatu])
REFERENCES [dbo].[Enumeration] ([e_id])
GO
ALTER TABLE [dbo].[BlogArticle] CHECK CONSTRAINT [FK_BlogArticle_Enumeration]
GO ALTER TABLE [dbo].[BlogArticleCate] WITH CHECK ADD CONSTRAINT [FK_BlogArticleCate_BlogUser] FOREIGN KEY([Author])
REFERENCES [dbo].[BlogUser] ([Id])
GO
ALTER TABLE [dbo].[BlogArticleCate] CHECK CONSTRAINT [FK_BlogArticleCate_BlogUser]
GO
2.2 用VS2010创建一个MVC程序
点击“确定”
选择 “Empty”
2.3 创建OumindBlog.edmx文件
路径:项目->添加新项
选择 数据 - ADO.NET 实体数据模型,然后把名称改为 OumindBlog
选中从数据库生成,点击下一步
把连接字符串名称改为 “BlogContext”
在红框中打勾
发现View文件夹下多了一个OumindBlog.edmx 文件
2.4 添加 EntityFrame 程序包
路径 :项目 ->管理NuGet程序包
首先,需要从 NuGet 获取实体框架的最新版本。
- “项目”–>“管理 NuGet 程序包…” 如果没有“管理 NuGet 程序包...”选项,则应安装 NuGet 的最新版本,
如果链接无法打开,请访问:http://msdn.microsoft.com/zh-cn/data/jj206878 或者 http://visualstudiogallery.msdn.microsoft.com/27077b70-9dad-4c64-adcf-c7cf6bc9970c
- 选择“联机”选项卡
- 选择“EntityFramework”程序包
- 单击“安装”
点击“安装”
点击“我接受”
如果EF程序包已安装,再次打开安装,可以看到程序包右上角有个绿色的对勾,说明程序包已安装。
2.5 添加 EF 5.x DbContext Generator for C# 模板
双击OumindBlog.edmx文件,在空白处点右键,选择“添加代码生成项...”
选择“EF 5.x DbContext Generator for C#”,输入名称 OumindBlog,然后单击“添加”
从左侧菜单中选择“联机模板”,然后搜索“DbContext”
添加完后,View文件夹下多了两个文件,一个是OumindBlog.Context.tt,另一个是OumindBlog.tt。
搭建EF框架需要三个文件和两个组件
A、三个文件:OumindBlog.Context.tt、OumindBlog.tt 和 OumindBlog.edmx
B、两个组件:EntityFrame程序包 和 EF 5.x DbContext Generator for C#
3、编写代码
3.1 在编写代码前,增加一个控制器HomeControllers(HomeController.cs)和一个View(Index.cshtml)
3.2 打开HomeController.cs 文件
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc; namespace MvcTest.Controllers
{
public class HomeController : Controller
{
#region 0.1 Action方法 + ActionResult Index()
/// <summary>
/// Action方法
/// </summary>
/// <returns></returns>
BlogContext db = new BlogContext();
public ActionResult Index()
{
System.Text.StringBuilder sbhtml = new System.Text.StringBuilder();
List<BlogArticle> list = (from d in db.BlogArticles where d.AIsDel == false select d).ToList();
list.ForEach(d =>
{
sbhtml.AppendLine("<div>" + d.ATitle.ToString() + "</div>");
}); ViewBag.HtmlStr = sbhtml.ToString(); return View();
}
#endregion
}
}
在Index方法上单击右键,选择添加“视图”。
把CheckBox的勾去掉,点击“添加”。
3.3 打开Index.cshtml文件,路径:Views->Home->Index.cshtml
@{
Layout = null;
} <!DOCTYPE html> <html>
<head>
<meta name="viewport" content="width=device-width" />
<title>Index</title>
</head>
<body>
<!--Html.Raw只打印出Html标签中的内容,ViewBag.HtmlStr从ViewBag中取数据并显示Html标签和内容-->
@Html.Raw(ViewBag.HtmlStr)
</body>
</html>
3.4 运行结果
在解决方案资源管理器中,选择MvcTest,点击“右键”,选中在浏览器中查看或者按快捷键 Ctrl + Shift + W
如何搭建MVC + EF 框架的更多相关文章
- ASP.NET MVC+EF框架+EasyUI实现权限管理系列(14)-主框架搭建
原文:ASP.NET MVC+EF框架+EasyUI实现权限管理系列(14)-主框架搭建 ASP.NET MVC+EF框架+EasyUI实现权限管系列 (开篇) (1):框架搭建 (2 ...
- ASP.NET MVC+EF框架+EasyUI实现权限管理系列(1)-框架搭建
原文:ASP.NET MVC+EF框架+EasyUI实现权限管理系列(1)-框架搭建 ASP.NET MVC+EF框架+EasyUI实现权限管系列 (开篇) 前言:这篇博客开始我们便一步一步的来实现这 ...
- ASP.NET MVC+EF框架+EasyUI实现权限管理系列(24)-权限组的设计和实现(附源码)(终结)
ASP.NET MVC+EF框架+EasyUI实现权限管系列 (开篇) (1):框架搭建 (2):数据库访问层的设计Demo (3):面向接口编程 (4 ):业务逻辑层的封装 ...
- ASP.NET MVC+EF框架+EasyUI实现权限管理系列(23)-设置角色遗留问题和为权限设置角色以及EasyUI Tabs的使用
ASP.NET MVC+EF框架+EasyUI实现权限管系列 (开篇) (1):框架搭建 (2):数据库访问层的设计Demo (3):面向接口编程 (4 ):业务逻辑层的封装 ...
- ASP.NET MVC+EF框架+EasyUI实现权限管理系列(22)-为用户设置角色
ASP.NET MVC+EF框架+EasyUI实现权限管系列 (开篇) (1):框架搭建 (2):数据库访问层的设计Demo (3):面向接口编程 (4 ):业务逻辑层的封装 ...
- ASP.NET MVC+EF框架+EasyUI实现权限管理系列
http://www.cnblogs.com/hanyinglong/archive/2013/03/22/2976478.html ASP.NET MVC+EF框架+EasyUI实现权限管理系列之开 ...
- ASP.NET MVC+EF框架+EasyUI实现权限管理系列(21)-用户角色权限基本的实现说明
原文:ASP.NET MVC+EF框架+EasyUI实现权限管理系列(21)-用户角色权限基本的实现说明 ASP.NET MVC+EF框架+EasyUI实现权限管系列 (开篇) (1):框 ...
- ASP.NET MVC+EF框架+EasyUI实现权限管理系列(20)-多条件模糊查询和回收站还原的实现
原文:ASP.NET MVC+EF框架+EasyUI实现权限管理系列(20)-多条件模糊查询和回收站还原的实现 ASP.NET MVC+EF框架+EasyUI实现权限管系列 (开篇) (1):框架 ...
- ASP.NET MVC+EF框架+EasyUI实现权限管理系列(19)-用户信息的修改和浏览
原文:ASP.NET MVC+EF框架+EasyUI实现权限管理系列(19)-用户信息的修改和浏览 ASP.NET MVC+EF框架+EasyUI实现权限管系列 (开篇) (1):框架搭建 ...
随机推荐
- LinuxShell脚本攻略--第二章 命令之乐
用 cat 进行拼接 文件查找与文件列表玩转 xargs 用 tr 进行转换排序临时文件命名与随机数分割文件和数据根据扩展名切分文件名mv 批量重命名文件交互输入自动化 cat: echo 'Text ...
- sap 中怎样把非限制库存转为销售订单库存?
把非限制库存转为销售订单库存: MB1B 移动类型413 把销售订单库存转为非限制库存: MB1B移动类型411 E 切记!
- innodb_fast_shutdown中值为1或者2的区别是?
innodb_fast_shutdown=0 , 1 , 2时的意思分别是 0 把buffer pool中的脏页刷到磁盘和合并insert buffer,当然包括redo log也会写到磁盘中. 2 ...
- 【bzoj1046】上升序列
[bzoj1046]上升序列 题意 对于一个给定的S={a1,a2,a3,-,an},若有P={ax1,ax2,ax3,-,axm},满足(x1 < x2 < - < xm)且( a ...
- 【bzoj3625】【xsy1729】小朋友和二叉树
[bzoj3625]小朋友与二叉树 题意 我们的小朋友很喜欢计算机科学,而且尤其喜欢二叉树. 考虑一个含有n个互异正整数的序列c[1],c[2],...,c[n].如果一棵带点权的有根二叉树满足其所有 ...
- robotframework笔记18
测试执行 如何创建测试套件结构解析 执行测试数据,如何继续执行一个测试用例失败后, 以及如何优雅地停止整个测试执行. 执行流 执行测试套件和 总是在一个测试套件执行测试用例. 一个测试套件 创建从一个 ...
- Python顺序集合之 List
Python内置的一种数据类型是列表:list.list是一种有序的集合,可以随时添加和删除其中的元素. 比如,列出班里所有同学的名字,就可以用一个list表示: >>> ['Jen ...
- left join与on,where 结合一起用的异同
I.数据库在通过连接两张或多张表来返回记录时,都会生成一张中间的临时表,然后再将这张临时表返回给用户. 在使用left join时,on和where条件的区别如下: 1. on条件是在生成临时表时使用 ...
- 工程目录 Java/Web/Maven
jar包和war包的区别 war是一个web模块,其中需要包括WEB-INF,是可以直接运行的WEB模块.而jar一般只是包括一些class文件,在声明了Main_class之后是可以用java命令运 ...
- ztree check
<link rel="stylesheet" href="${contextPath}/resources/ztree/css/demo.css" typ ...