//这个是分页数据和总页数类

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增删改查,简单的例子的更多相关文章

  1. WPF MVVM+EF增删改查 简单示例(二) 1对1 映射

    WPF MVVM+EF增删改查 简单示例(一)实现了对学生信息的管理. 现在需求发生变更,在录入学生资料的时候同时需要录入学生的图片信息,并且一名学生只能有一张图片资料.并可对学生的图片资料进行更新. ...

  2. MVC 中aspx的增删改查

    先看总体结构 LInQ #pragma warning disable 1591 //--------------------------------------------------------- ...

  3. WPF MVVM+EF 增删改查 简单示例(一)

    实现了那些功能,先看看效果图: 项目工程目录: 接下来开始具体的步骤: 第一步:在VS中新建工程 第二步:使用NuGet 安装EntityFramework 第三步:使用NuGet 安装EntityF ...

  4. 分享一个自己写的MVC+EF “增删改查” 无刷新分页程序

    分享一个自己写的MVC+EF “增删改查” 无刷新分页程序 一.项目之前得添加几个组件artDialog.MVCPager.kindeditor-4.0.先上几个效果图.      1.首先建立一个数 ...

  5. MVC与EasyUI结合增删改查

    构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(9)-MVC与EasyUI结合增删改查   在第八讲中,我们已经做到了怎么样分页.这一讲主要讲增删改查.第六讲的 ...

  6. 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(5)-EF增删改查by糟糕的代码

    原文:构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(5)-EF增删改查by糟糕的代码 上一讲我们创建了一系列的解决方案,我们通过一个例子来看看层与层之间的关系 ...

  7. MVC无限级分类02,增删改查

    继上一篇"MVC无限级分类01,分层架构,引入缓存,完成领域模型与视图模型的映射",本篇开始MVC无限级分类的增删改查部分,源码在github. 显示和查询 使用datagrid显 ...

  8. 一、数据库表中字段的增删改查,二、路由基础.三、有名无名分组.四、多app共存的路由分配.五、多app共存时模板冲突问题.六、创建app流程.七、路由分发.八、路由别名,九、名称空间.十、反向解析.十一、2.x新特性.十二、自定义转换器

    一.数据库表中字段的增删改查 ''' 直接在modules中对字段进行增删改查 然后在tools下点击Run manage.py Task执行makemigrations和migrate 注意在执行字 ...

  9. 前端的CRUD增删改查的小例子

    前端的CRUD增删改查的小例子 1.效果演示 2.相关代码: <!DOCTYPE html> <html lang="en"> <head> & ...

随机推荐

  1. Go语言练习:go语言与C语言的交互——cgo

    1.代码 package main import "fmt" /* #include <stdlib.h> #include <stdio.h> void ...

  2. EasyUI配置和组件

    首先在webcontent添加配置文件 新建静态或动态网站,在title的下面加入五个配置文件路径,注意:循序不能乱 <!-- 顺序不可以乱 --> <!-- 1.jQuery的js ...

  3. cocos2dx中的ScrollView

    ScrollView由视窗区域(裁剪区域)和内容区域组成,内容区域叫innerContainer. 视窗区域范围:get/setContentSize 内容区域:get/setInnerContain ...

  4. 总结-mysql

    执行sql脚本: source C:/users/liaolongjun/Desktop/miduo_fileinfo.sql; 注意,必须是正斜杆.如果是反斜杆,也会执行,但会报错. 导入数据: L ...

  5. linux的sysctl基本配置

    # Controls the use of TCP syncookiesnet.ipv4.tcp_syncookies = 1 # me write paramnet.ipv4.tcp_timesta ...

  6. Apache2 worker

    http://www.php-internals.com/book/?p=chapt08/08-03-zend-thread-safe-in-php 在多线程系统中,进程保留着资源所有权的属性,而多个 ...

  7. 加快ArcGIS Server创建缓存速度,CachingTools的实例数

    大比例尺的缓存,由于文件非常大,创建非常花费时间,在硬件设备已固定的情况下,调整Caching tools的实例数是加快创建缓存的方法之一. 简单来说:CachingTools的最大并行实例数决定了C ...

  8. sql条件为空查询全部,不为空按条件查询以及多条件筛选查询。

    procedure queryLackLonOrLatTdCell(i_region_name varchar2, i_state varchar2) is begin select region_n ...

  9. ui-grid

    html代码: <html ng-app="myApp">       <head>         <meta charset="utf- ...

  10. 对bootstrap中confirm alert进行封装

    HTML: <!-- system modal start --> <div id="ycf-alert" class="modal"> ...