新的一年,新的开始。

今天总结的主题是在MySql中应用EntityFramework 的Code First模式。

开发环境:Win8 + MySql5.5 +VS 2012.

第一步是在数据库中新建一个表,具体字段如下图。

在表中添加若干数据:

数据建好之后,下面就是在项目中引用EntityFramework了。

二,在项目中新建一个实体类Product

public class Product
    {
        public int ProductID { get; set; }
        public string Name { get; set; }
        public string Description { get; set; }
        public decimal Price { get; set; }
        public string Category { get; set; }
    }

注意,成员名要与数据库中的名相同。

然后新建一个接口 IProductRepository

public  interface IProductRepository
    {
        IQueryable<Product> Products { get; }
    }

之后,是实现接口的类

public class EFProductRepostitory:IProductRepository

{

private EFDbContext context = new EFDbContext();

public IQueryable<Entities.Product> Products

{

get { return context.Products; }

}

}

实现与数据库上下文关联

public class EFDbContext:DbContext
    {
        public DbSet<Product> Products { get; set; }
        public DbSet<Friend> Friends { get; set; }
    }

然后在Controller中实现调用

public class ProductController : Controller{private int pageSize = 4;private IProductRepository repository;public ProductController(IProductRepository productRepository){repository = productRepository;}public ViewResult List(int page=1){return View(repository.Products.OrderBy(p=>p.ProductID).Skip((page-1)*pageSize).Take(pageSize));}}

在Ninject产生Controller的类中绑定。

 public class NinjectControllerFactory:DefaultControllerFactory{private IKernel ninjectKernel;public NinjectControllerFactory(){ninjectKernel = new StandardKernel();AddBindings();}protected override IController GetControllerInstance(System.Web.Routing.RequestContext requestContext, Type controllerType){return controllerType == null ? null : (IController)ninjectKernel.Get(controllerType);}public void AddBindings(){//Mock<IProductRepository> mock = new Mock<IProductRepository>();//mock.Setup(m => m.Products).Returns(new List<Product> {//    new Product{ Name=" football", Price=25},//    new Product{ Name="basketball" , Price=30},//    new Product{ Name="PingPang" , Price=40}//}.AsQueryable());//ninjectKernel.Bind<IProductRepository>().ToConstant(mock.Object);            ninjectKernel.Bind<IProductRepository>().To<EFProductRepostitory>();ninjectKernel.Bind<IFriend>().To<EFFriend>();}

最后需要注意的一点是,配置文件中写数据库连接的地方要与DbContext的类名保持一致。

 <connectionStrings><!--<add name="DefaultConnection" providerName="System.Data.SqlClient" connectionString="Data Source=(LocalDb)\v11.0;Initial Catalog=aspnet-SportStore.UI-20121214161900;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\aspnet-SportStore.UI-20121214161900.mdf" />--><add name="EFDbContext" connectionString="Database=sportstore;Data Source=localhost;User Id=root;Password=root" providerName="MySql.Data.MySqlClient"/></connectionStrings>

MVC3、如何应用EntityFramework 连接MySql 数据库相关推荐

  1. ef6 mysql code first_使用EntityFramework6连接MySql数据库(code first方式)

    demo托管地址:http://git.oschina.net/uustudy/ASP.NET-CodeFirst-MySQL-Demo.git 首先和DB First那篇文章一样,准备工具都要一样的 ...

  2. EF6 使用 和 连接MySql 数据库-闪退和若干问题解决

    在visual studio中用EF6连接Mysql数据库,搞了我两天,刚刚搞定,其实很简单就是版本的问题,这里填个坑. 首先,必备插件 1. MySql Connector/NET 2. MySql ...

  3. .net连接mysql数据_.net连接MYSQL数据库的方法及示例!

    连接MYSQL数据库的方法及示例 方法一: 使用MYSQL推出的MySQL Connector/Net is an ADO.NET driver for MySQL 该组件为MYSQL为ADO.NET ...

  4. JDBC连接MySQL数据库及演示样例

    JDBC是Sun公司制定的一个能够用Java语言连接数据库的技术. 一.JDBC基础知识         JDBC(Java Data Base Connectivity,java数据库连接)是一种用 ...

  5. python用django连接mysql_三分钟了解Django如何连接Mysql数据库

    处理用户注册请求.Django连接MysqL数据库相关配置.数据库迁移命令: my_Dproject/app01/views.py    在views函数文件中添加register函数,来处理用户注册 ...

  6. eclipselink mysql_Eclipse连接MySQL数据库(傻瓜篇)

    Eclipse连接MySQL数据库(傻瓜篇) 本来不想写这么简单人文章,在百度上搜索我这个标题,完全符合标题的一大堆.但我按照那些文章捣鼓了很久,就是不行. 我的环境:MySQL:mysql-esse ...

  7. Linux JSP连接MySQL数据库

    Linux(Ubuntu平台)JSP通过JDBC连接MySQL数据库,与Windows平台类似,步骤如下: 下载 jdbc: mysql-connector-java-5.1.18.tar.gz 解压 ...

  8. python使用PyMySQL的连接MySQL数据库

    如何实现将100000条数据插入到MySQL数据库?如果使用MySQL客户端来完成这个操作,那么这个工作量无疑是巨大的,可以通过使用程序代码的方式去连接MySQL数据库,然后对MySQL数据库进行增删 ...

  9. python3连接mysql,python3连接MySQL数据库实例详解

    本文实例为大家分享了python3连接MySQL数据库的具体代码,供大家参考,具体内容如下 #python3连接MySQL实例 import pymysql """导入连 ...

最新文章

  1. 注册HttpSessionListener失效原因
  2. 分布式事务 常见方法
  3. Linux wildcard
  4. 值重新赋值_JavaScript-赋值运算符
  5. 【Coursera】Getting Started with Python:Week One - Reading: Welcome to The Class
  6. SQLAllocStmt与SQLFreeStmt
  7. php 函数有命名空间吗_解析 ThinkPHP 的命名空间
  8. java 类 属性数量_跟我学java编程—Java类的属性与成员变量
  9. whisper客服源码_深入ethereum源码-whisper协议解读
  10. ijkplayer-hook协议实现分析
  11. 8: springMVC ModelAndView 作用与功能解析
  12. 创建 3D 控件_1.创建控件蓝图
  13. CSS颜色表示的几种方式
  14. Function与function的区别
  15. Windows小技巧 -- 已连接wifi密码查看
  16. 计算机硬件系统储存包括那些,硬件系统包括什么
  17. Quasi_Binary(模拟)
  18. lower_bound与upper_bound
  19. linux中fq格式转fa,fasta/fq文件处理万能工具——Seqkit学习记录
  20. 「GoTeam 招聘时间」星图比特 后端开发工程师(上海)

热门文章

  1. Excel宏的自动运行设置
  2. [Ext JS 7 ]7.5 自适应配置 - Responsive Configs
  3. 通过函数名字符串调用函数【C语言版】
  4. echo 多行_分享laravel-echo-server广播服务搭建-Laravel
  5. linux命令及其使用方法,Linux命令及其使用方法
  6. #6278. 数列分块入门 2
  7. 如何删除网关的session_微服务安全认证架构是如何演进而来的?坐好小板凳一起来听一听...
  8. JSP提交中文乱码的解决
  9. python tkinter实例_Python tkinter模版代码实例
  10. linux 常用正则表达式,Linux中基本正则表达式