using System.Collections.Generic;
using System.ComponentModel.DataAnnotations; namespace iFlytekDemo.Models
{
/// <summary>
/// 城市实体
/// </summary>
public class City
{
/// <summary>
/// 城市编号
/// </summary>
[Key]
public int CityID { get; set; } /// <summary>
/// 城市名称
/// </summary>
[Required]
public string CityName { get; set; } /// <summary>
/// 员工集合
/// </summary>
public virtual ICollection<Employee> Employees { get; set; }
}
}
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.Entity;
using System.Linq;
using System.Linq.Expressions;
using System.Web; namespace iFlytekDemo.Models
{
public class CityRepository : ICityRepository
{
iFlytekDemoContext context = new iFlytekDemoContext(); public IQueryable<City> All
{
get { return context.Cities; }
} public IQueryable<City> AllIncluding(params Expression<Func<City, object>>[] includeProperties)
{
IQueryable<City> query = context.Cities;
foreach (var includeProperty in includeProperties) {
query = query.Include(includeProperty);
}
return query;
} public City Find(int id)
{
return context.Cities.Find(id);
} public void InsertOrUpdate(City city)
{
if (city.CityID == default(int)) {
// New entity
context.Cities.Add(city);
} else {
// Existing entity
context.Entry(city).State = EntityState.Modified;
}
} public void Delete(int id)
{
var city = context.Cities.Find(id);
context.Cities.Remove(city);
} public void Save()
{
context.SaveChanges();
} public void Dispose()
{
context.Dispose();
}
} public interface ICityRepository : IDisposable
{
IQueryable<City> All { get; }
IQueryable<City> AllIncluding(params Expression<Func<City, object>>[] includeProperties);
City Find(int id);
void InsertOrUpdate(City city);
void Delete(int id);
void Save();
}
}
using System.ComponentModel.DataAnnotations;

namespace iFlytekDemo.Models
{
/// <summary>
/// 员工实体
/// </summary>
public class Employee
{
/// <summary>
/// 员工编号
/// </summary>
[Key]
public int EmployeeID { get; set; } /// <summary>
/// 员工姓名
/// </summary>
[Required]
public string EmployeeName { get; set; } /// <summary>
/// 城市编号
/// </summary>
[Required]
public int CityID { get; set; } /// <summary>
/// 城市对象
/// </summary>
public virtual City City { get; set; }
}
}
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.Entity;
using System.Linq;
using System.Linq.Expressions;
using System.Web; namespace iFlytekDemo.Models
{
public class EmployeeRepository : IEmployeeRepository
{
iFlytekDemoContext context = new iFlytekDemoContext(); public IQueryable<Employee> All
{
get { return context.Employees; }
} public IQueryable<Employee> AllIncluding(params Expression<Func<Employee, object>>[] includeProperties)
{
IQueryable<Employee> query = context.Employees;
foreach (var includeProperty in includeProperties) {
query = query.Include(includeProperty);
}
return query;
} public Employee Find(int id)
{
return context.Employees.Find(id);
} public void InsertOrUpdate(Employee employee)
{
if (employee.EmployeeID == default(int)) {
// New entity
context.Employees.Add(employee);
} else {
// Existing entity
context.Entry(employee).State = EntityState.Modified;
}
} public void Delete(int id)
{
var employee = context.Employees.Find(id);
context.Employees.Remove(employee);
} public void Save()
{
context.SaveChanges();
} public void Dispose()
{
context.Dispose();
}
} public interface IEmployeeRepository : IDisposable
{
IQueryable<Employee> All { get; }
IQueryable<Employee> AllIncluding(params Expression<Func<Employee, object>>[] includeProperties);
Employee Find(int id);
void InsertOrUpdate(Employee employee);
void Delete(int id);
void Save();
}
}
using System;
using System.Collections.Generic;
using System.Data.Entity;
using System.Linq;
using System.Web; namespace iFlytekDemo.Models
{
public class iFlytekDemoContext : DbContext
{
// You can add custom code to this file. Changes will not be overwritten.
//
// If you want Entity Framework to drop and regenerate your database
// automatically whenever you change your model schema, add the following
// code to the Application_Start method in your Global.asax file.
// Note: this will destroy and re-create your database with every model change.
//
// System.Data.Entity.Database.SetInitializer(new System.Data.Entity.DropCreateDatabaseIfModelChanges<iFlytekDemo.Models.iFlytekDemoContext>()); public DbSet<iFlytekDemo.Models.City> Cities { get; set; } public DbSet<iFlytekDemo.Models.Employee> Employees { get; set; }
}
}

C#_MVC_Repository_CRUD_Model的更多相关文章

随机推荐

  1. jquery自动生成分页控件 - pagetest.js

    /* pagenum:当前页数 theallnum:总条数 themeiye:每页显示多少条 */ function pagetest(pagenum, theallnum, themeiye) { ...

  2. 序列化类型为XX的对象时检测到循环引用

    /// 产品列表展示 /// </summary> /// <returns></returns> ) { //获得所有组别 Galasys_IBLL.IT_BIZ ...

  3. 嵌入式Linux USB WIFI驱动的移植

    硬件平台:飞思卡尔MX258开发板 操作系统:Linux2.6.31 WIFI:    RT2860 USB WIFI模组 交叉编译环境:gcc version 4.1.2 调试步骤: 第一步:测试U ...

  4. 《深入Java虚拟机学习笔记》- 第8章 连接模型

    Java虚拟机学习笔记(八)连接模型

  5. 转载--PHP json_encode() 和json_decode()函数介绍

    转自:http://www.nowamagic.net/php/php_FunctionJsonEncode.php 转自:http://www.jb51.net/article/30489.htm ...

  6. as3+java+mysql(mybatis) 数据自动工具(六)

    这篇来写一些常量定义的实例.我一般在配置常量的时候,都会让 bitOffset = 20,这样是一个比较好的分配,就是每个分组可以有 0xFFFFF(1048575) 个常量,0xFFF(4095) ...

  7. 7.OpenACC

    OpenACC: openacc 可以用于fortran, c 和 c++程序,可以运行在CPU或者GPU设备. openacc的代码就是在原有的C语言基础上进行修改,通过添加:compiler di ...

  8. Java Spring 中你不知道的注入方式

    前言 在Spring配置文件中使用XML文件进行配置,实际上是让Spring执行了相应的代码,例如: 使用<bean>元素,实际上是让Spring执行无参或有参构造器 使用<prop ...

  9. Android Studio 模拟器启动问题——黑屏 死机 解决方法

    今天用了下Android Studio,出现了一些问题,现在将启动过程中遇到的问题和解决方案列出来,方便大家参考. 安装过程不多说,网上一搜一大把. 那直接说问题吧: 1. 无法启动,报错:Faile ...

  10. php透明合并png与jpg图片

    源 <?php $png = imagecreatefrompng('./mark.png'); $jpeg = imagecreatefromjpeg('./image.jpg'); list ...