MVC中使用EF增删改查,简单的例子
//这个是分页数据和总页数类
public class SummaryBase<TModel>
{
public SummaryBase();
public IList<TModel> Collection { get; set; }
public int TotalCount { get; set; }
}
//查询学校数据分页 BM.Criteria.SchoolDataCriteria 这个是条件类,根据自己的需求定义
public static SummaryBase<EF.SchoolData> QuerySchoolData(BM.Criteria.SchoolDataCriteria schoolDataCriteria)
{
string cityCode = schoolDataCriteria.CityCode;
using (EF.EstateCoreEntities context = DBContextFactory.Create<EF.EstateCoreEntities>(cityCode))
{
IQueryable<EF.SchoolData> estatequery = context.SchoolDatas.Where(d => d.IsActived == true);
#region 房源搜索条件
if (schoolDataCriteria != null)
{
if (!string.IsNullOrEmpty(schoolDataCriteria.FullName)) //全名称
{
estatequery = estatequery.Where(d => d.FullName.Contains(schoolDataCriteria.FullName));
}
if (!string.IsNullOrEmpty(schoolDataCriteria.ZoneCode)) //行政区划
{
estatequery = estatequery.Where(d => d.ZoneCode.Equals(schoolDataCriteria.ZoneCode));
}
if (schoolDataCriteria.SchoolType.HasValue) //学校类型
{
estatequery = estatequery.Where(d => d.SchoolType == schoolDataCriteria.SchoolType.Value);
}
if (schoolDataCriteria.Nature.HasValue) //性质
{
estatequery = estatequery.Where(d => d.Nature == schoolDataCriteria.Nature.Value);
}
if (schoolDataCriteria.Grade.HasValue) //级别
{
estatequery = estatequery.Where(d => d.Grade == schoolDataCriteria.Grade.Value);
}
}
#endregion
//联合列表图片
var resultquery = estatequery;
//排序
resultquery = resultquery.OrderByDescending(s => s.CreatedDateTime);
//计算总页数
int totalcount = resultquery.Count();
//分页
if (schoolDataCriteria.PageSize.HasValue && schoolDataCriteria.PageSize.GetValueOrDefault(0) > 0)
{
//一页数量
int size = schoolDataCriteria.PageSize.HasValue ? schoolDataCriteria.PageSize.Value : 0;
//当前第几页
int pn = schoolDataCriteria.CurrentPage.HasValue ? schoolDataCriteria.CurrentPage.Value : 0;
if (size > 0 && pn > 1 && (size * (pn - 1) + 1 > totalcount))
schoolDataCriteria.CurrentPage = (totalcount - 1) / size + 1;
//如果选的页面有值且大于1,就把所选页面之前的数据从list中排除
if (schoolDataCriteria.CurrentPage.HasValue && schoolDataCriteria.CurrentPage.GetValueOrDefault(0) > 1)
{
int skipCount = schoolDataCriteria.CurrentPage.Value - 1;
resultquery = resultquery.Skip(skipCount * schoolDataCriteria.PageSize.Value).Take(schoolDataCriteria.PageSize.Value);
}
else
{
resultquery = resultquery.Take(schoolDataCriteria.PageSize.Value);
}
}
//数据转换
SummaryBase<EF.SchoolData> resultlist = new SummaryBase<EF.SchoolData>();
resultlist.Collection = resultquery.ToList();
resultlist.TotalCount = totalcount;
return resultlist;
}
}
/// <summary>
/// 修改学校信息
/// </summary>
/// <param name="siList"></param>
/// <param name="cityCode"></param>
/// <returns></returns>
public static bool EditSchoolData(EF.SchoolData sdItem, string cityCode)
{
using (EF.EstateCoreEntities context = DBContextFactory.Create<EF.EstateCoreEntities>(cityCode))
{
EF.SchoolData entity = context.SchoolDatas.Where(b => b.Id == sdItem.Id).FirstOrDefault();
if (entity == null)
{
return false;
}
entity.Name = sdItem.Name;
entity.FullName = sdItem.Name;
entity.SchoolType = sdItem.SchoolType;
entity.Nature = sdItem.Nature;
entity.Grade = sdItem.Grade;
entity.ZoneCode = sdItem.ZoneCode;
entity.SchoolAddress = sdItem.SchoolAddress;
entity.SchoolRemark = sdItem.SchoolRemark;
entity.AreaId = SubWaysManager.GetRegionIdByPoints((double)sdItem.Lat, (double)sdItem.Lng, cityCode);
entity.Lat = sdItem.Lat;
entity.Lng = sdItem.Lng;
entity.ModifiedDateTime = DateTime.Now;
return context.SaveChanges() > 0;
}
}
/// <summary>
/// 添加学校信息
/// </summary>
/// <param name="siList"></param>
/// <param name="cityCode"></param>
/// <returns></returns>
public static bool AddSchoolData(EF.SchoolData sdItem, string cityCode)
{
using (EF.EstateCoreEntities context = DBContextFactory.Create<EF.EstateCoreEntities>(cityCode))
{
EF.SchoolData entity = new SchoolData();
entity.Id = Guid.NewGuid();
entity.Name = sdItem.Name;
entity.FullName = sdItem.Name;
entity.SchoolType = sdItem.SchoolType;
entity.Nature = sdItem.Nature;
entity.Grade = sdItem.Grade;
entity.ZoneCode = sdItem.ZoneCode;
entity.SchoolAddress = sdItem.SchoolAddress;
entity.SchoolRemark = sdItem.SchoolRemark;
entity.AreaId = SubWaysManager.GetRegionIdByPoints((double)sdItem.Lat, (double)sdItem.Lng, cityCode);
entity.Lat = sdItem.Lat;
entity.Lng = sdItem.Lng;
entity.CreatedDateTime = DateTime.Now;
context.SchoolDatas.Add(entity);
return context.SaveChanges() > 0;
}
}
/// <summary>
/// 删除学校信息
/// </summary>
/// <param name="siList"></param>
/// <param name="cityCode"></param>
/// <returns></returns>
public static bool DelSchoolData(Guid sdId, string cityCode)
{
using (EF.EstateCoreEntities context = DBContextFactory.Create<EF.EstateCoreEntities>(cityCode))
{
EF.SchoolData entity = context.SchoolDatas.Where(b => b.Id == sdId).FirstOrDefault();
context.SchoolDatas.Remove(entity);
return context.SaveChanges() > 0;
}
}
MVC中使用EF增删改查,简单的例子的更多相关文章
- WPF MVVM+EF增删改查 简单示例(二) 1对1 映射
WPF MVVM+EF增删改查 简单示例(一)实现了对学生信息的管理. 现在需求发生变更,在录入学生资料的时候同时需要录入学生的图片信息,并且一名学生只能有一张图片资料.并可对学生的图片资料进行更新. ...
- MVC 中aspx的增删改查
先看总体结构 LInQ #pragma warning disable 1591 //--------------------------------------------------------- ...
- WPF MVVM+EF 增删改查 简单示例(一)
实现了那些功能,先看看效果图: 项目工程目录: 接下来开始具体的步骤: 第一步:在VS中新建工程 第二步:使用NuGet 安装EntityFramework 第三步:使用NuGet 安装EntityF ...
- 分享一个自己写的MVC+EF “增删改查” 无刷新分页程序
分享一个自己写的MVC+EF “增删改查” 无刷新分页程序 一.项目之前得添加几个组件artDialog.MVCPager.kindeditor-4.0.先上几个效果图. 1.首先建立一个数 ...
- MVC与EasyUI结合增删改查
构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(9)-MVC与EasyUI结合增删改查 在第八讲中,我们已经做到了怎么样分页.这一讲主要讲增删改查.第六讲的 ...
- 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(5)-EF增删改查by糟糕的代码
原文:构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(5)-EF增删改查by糟糕的代码 上一讲我们创建了一系列的解决方案,我们通过一个例子来看看层与层之间的关系 ...
- MVC无限级分类02,增删改查
继上一篇"MVC无限级分类01,分层架构,引入缓存,完成领域模型与视图模型的映射",本篇开始MVC无限级分类的增删改查部分,源码在github. 显示和查询 使用datagrid显 ...
- 一、数据库表中字段的增删改查,二、路由基础.三、有名无名分组.四、多app共存的路由分配.五、多app共存时模板冲突问题.六、创建app流程.七、路由分发.八、路由别名,九、名称空间.十、反向解析.十一、2.x新特性.十二、自定义转换器
一.数据库表中字段的增删改查 ''' 直接在modules中对字段进行增删改查 然后在tools下点击Run manage.py Task执行makemigrations和migrate 注意在执行字 ...
- 前端的CRUD增删改查的小例子
前端的CRUD增删改查的小例子 1.效果演示 2.相关代码: <!DOCTYPE html> <html lang="en"> <head> & ...
随机推荐
- css 图片内容在不同分辨率下居中显示(演示的图片宽度是1920px,当图片宽度大于显示屏的宽度时)
1.img 图片内容在不同分辨率下居中显示(如果隐藏多余,在img外面套一个div 设定overflow: hidden.div的大小就是img显示区域的大小) <!DOCTYPE html& ...
- <meta>指定浏览器模式(browser mode)或文档模式(document mode)无效
这是前两天解决的一个故障,准确的说它不是一个SharePoint的问题,而是IE8浏览器或者说是HTML代码的问题,但我感觉还是挺有意思的,所以贴上来分享一下. 基础知识 简单的讲,就是IE浏览器中有 ...
- soui使用wke时,设置js回调注意事项
wke响应网页js函数调用时注意: 必须等网页加载完成后,才能通过SetJsFunc设置js函数与c++回调的对应.网页未加载就设置,不会响应c++函数. 示例代码: wkeJSData* data ...
- [转载] Ubuntu 16.04 LTS 一键安装VNC
安装 X11VNC: sudo apt install x11vnc -y 配置访问密码: sudo x11vnc -storepasswd /etc/x11vnc.pass 创建服务: vi /li ...
- JMeter之JMS接口测试
JMeter是Apache开发的一款小巧易用的开源性能测试工具,由java语言开发.JMeter不仅免费开源而且功能强大.易于扩展,如果有一定Java开发基础的话还可以在JMeter上做扩展开发新的插 ...
- PHPUnit入门
PHPUnit是PHP语言的单元测试框架.工具,xunit单元测试工具系列成员之一,可以单独运行在Linux或windows系统下面,也可以集成到zend studio等IDE工具中. 工具下载:ht ...
- 隐藏ASP.NET站点的HTTP Headers
站点的Headers里面会暴露一些服务器的环境,例如IIS版本.语言的环境等 有时候我们不想让用户了解这类信息那么可以这样做: 1.修改web.config 在 <system.webServe ...
- iOS版本更新的App提交审核发布流程
http://www.2cto.com/kf/201502/378698.html 版本更新的App和新App的发布提交流程略有不同,新的App需要在开发者账号里准备发布证书,添加App的id,关联描 ...
- WordPress基础:小工具的使用
通过外观->小工具对挂件区域的内容进行调整 比如添加个日历模块 保存后前台就会显示出来 如果不需要,反过来,把模块拖到左边就可以了.
- [原]关于flash GPU渲染的一些不完全测试(wmode,ie,chrome)
关于flash GPU渲染的一些不完全测试(wmode,ie,chrome) 测试环境: 随意取一段优酷超清视频,在本地以网页最大化方式播放,分辨率约1080P左右. 观察不同wmode值下,flas ...