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

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. 普通用户ssh无密码登录设置

    这段时间在做Hadoop的环境配置,用root用户只需要按照一定的步骤进行操作就可以直接实现无密码登录,但如果使用新建用户,怎么尝试都不行. 本帖大部分都是其他人帖子的内容.如果按照下面的步骤还是不能 ...

  2. Intel Code Challenge Final Round (Div. 1 + Div. 2, Combined)D Dense Subsequence

    传送门:D Dense Subsequence 题意:输入一个m,然后输入一个字符串,从字符串中取出一些字符组成一个串,要求满足:在任意长度为m的区间内都至少有一个字符被取到,找出所有可能性中字典序最 ...

  3. activity跳转到新的activity后清除之前的activity

    Intent intent = new Intent(A.this, B.class); intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Inten ...

  4. List转换成json格式字符串,json格式字符串转换成list

    一.List转换成json字符串 这个比较简单,导入gson-x.x.jar, List<User> users = new ArrayList<User>(); Gson g ...

  5. sublime3+quick3.5 完整使用教程

    sublime3+quick3.5 完整使用教程 Administrator   2015-07-15 14:43:08 1. 安装Sublime3   2. 注册Sublime3     Help- ...

  6. curl 传递用户session

    $cmh = curl_multi_init(); $ch = curl_init(); curl_setopt($ch,CURLOPT_URL, $url); curl_setopt($ch, CU ...

  7. HTML5 头部标签定义

    <!DOCTYPE html> <!-- 使用 HTML5 doctype,不区分大小写 --> <html lang="zh-cmn-Hans"&g ...

  8. Codeforces 209 C. Trails and Glades

    Vasya went for a walk in the park. The park has n glades, numbered from 1 to n. There are m trails b ...

  9. Yii2中数据过滤方案

    1. 将数据赋值给model对象再通过model保存数据到数据库时有两种方法. 1) load()再save(). 这种可以通过$model->setScenario('test_scenari ...

  10. grafana + influxdb + telegraf , 构建性能监控平台

    1.安装平台 1).grafana , 访问各类数据源 , 自定义报表.显示图表等等 , 用于提供界面监控 , 默认端口为3000 , 默认登陆信息admin wget https://grafana ...