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> & ...
随机推荐
- android4.4源码下载简介
1. $sudo apt-get install git-core curl2. mkdir ~/bin PATH=~/bin:$PATH3. curl http://commondatastorag ...
- CommonJS Promises/A规范
本文来自四火哥的翻译 CommonJS是一组javascript编程规范,而promise是其中之一. 简而言之,promises是一种令代码的异步行为变得更加优雅的软件抽象.在基本的定义中,代码可能 ...
- 第一章-第四题(ACM 比赛的程序是软件么? “写程序” 和 ”做软件“ 有区别么?软件工程是不是教那些不怎么会写程序的人开发软件? 你怎么看?这个游戏团队, 有很好的软件,但是商业模式和其他软件之外的因素呢?有没有考虑到)--By梁旭晖
引用 http://baike.baidu.com/link?url=z_phkcEO4_HjFG_Lt163dGFAubdb68IbfcfzWscTOrrZ55WbJEQKzyMQ5eMQKyatD ...
- windows中查看开机时间
windows中查看开机时间 在windows下可以使用systeminfo命令来查看. 下面是网站摘录的关于windows启动了多长时间的内容 1. windows系统可以查看从开机到现在共 ...
- Centos防火墙禁止ping和开启ping
1.允许PING设置 iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT iptables -A OUTPUT -p icmp - ...
- JavaScript自学之数组排序
<html> <head> <title>数组排序</title> <script type="text/javascript" ...
- linux 路由
- Reveal - UI 分析工具
一.安装和简介 a) download url b) Reveal 使用的方法有两种: Static Library Intefration, Dynamic Library Intefration. ...
- 每天进步一点点——五分钟理解一致性哈希算法(consistent hashing)
转载请说明出处:http://blog.csdn.net/cywosp/article/details/23397179 一致性哈希算法在1997年由麻省理工学院提出的一种分布式哈希(DHT) ...
- could not get lock /var/lib/dpkg/lock
这个问题的原因可能是有另外一个程序正在运行,导致资源被锁不可用.而导致资源被锁的原因,可能是上次安装时没正常完成,而导致出现此状况. 解决方法:输入以下命令 sudo rm /var/cache/ap ...