EntityFramework自动生成CodeFirst代码
来源:互联网 发布:c语言获取当前日期时间 编辑:程序博客网 时间:2024/05/20 06:04
原文:Entity Framework 自动生成CodeFirst代码前言
在前面的文章中我们提到Entity Framework的“Code First”模式也同样可以基于现有数据库进行开发。今天就让我们一起看一下使用Entity Framework Power Tools如何基于现有数据库生成数据类和数据库上下等。
Entity Framework Power Tools
基于现有数据库生成POCO数据类和数据库上下文需要借助Visual Studio一个扩展插件-- Entity Framework Power Tools(一个Code First反向工程工具)。
通过点击上图的扩展和更新,得到如下图所示的界面
安装完之后只要在项目上右键选择Entity Framework->Reverse Engineer Code First(项目中首先需要安装Entity Framework 包,否则会有错误),然后在弹出的窗口中输入相关的数据库连接信息即可(我们这里使用“NorthWind”数据库)。
当然当你在操作的时候你首先还是要先引用Entity Framework。然后点击Reverse Engineer Code First
配置好数据库链接,
确认之后,我们首先来看一下配置文件的变化
<?xml version="1.0" encoding="utf-8"?><configuration><configSections><!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 --><section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" /></configSections><connectionStrings><add name="NorthwindContext" connectionString="Data Source=.;Initial Catalog=Northwind;Integrated Security=True;MultipleActiveResultSets=True"providerName="System.Data.SqlClient" /></connectionStrings><startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" /></startup><entityFramework><defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework"><parameters><parameter value="v11.0" /></parameters></defaultConnectionFactory></entityFramework></configuration>
于此同时生成了NorthWindContext数据库操作上下文
using System.Data.Entity;using System.Data.Entity.Infrastructure;using CodeFirstPowerTools.Models.Mapping;namespace CodeFirstPowerTools.Models{public partial class NorthwindContext : DbContext{static NorthwindContext(){Database.SetInitializer<NorthwindContext>(null);}public NorthwindContext(): base("Name=NorthwindContext"){}public DbSet<Category> Categories { get; set; }public DbSet<CustomerDemographic> CustomerDemographics { get; set; }public DbSet<Customer> Customers { get; set; }public DbSet<Employee> Employees { get; set; }public DbSet<Order_Detail> Order_Details { get; set; }public DbSet<Order> Orders { get; set; }public DbSet<Product> Products { get; set; }public DbSet<Region> Regions { get; set; }public DbSet<Shipper> Shippers { get; set; }public DbSet<Supplier> Suppliers { get; set; }public DbSet<Territory> Territories { get; set; }public DbSet<Alphabetical_list_of_product> Alphabetical_list_of_products { get; set; }public DbSet<Category_Sales_for_1997> Category_Sales_for_1997 { get; set; }public DbSet<Current_Product_List> Current_Product_Lists { get; set; }public DbSet<Customer_and_Suppliers_by_City> Customer_and_Suppliers_by_Cities { get; set; }public DbSet<Invoice> Invoices { get; set; }public DbSet<Order_Details_Extended> Order_Details_Extendeds { get; set; }public DbSet<Order_Subtotal> Order_Subtotals { get; set; }public DbSet<Orders_Qry> Orders_Qries { get; set; }public DbSet<Product_Sales_for_1997> Product_Sales_for_1997 { get; set; }public DbSet<Products_Above_Average_Price> Products_Above_Average_Prices { get; set; }public DbSet<Products_by_Category> Products_by_Categories { get; set; }public DbSet<Sales_by_Category> Sales_by_Categories { get; set; }public DbSet<Sales_Totals_by_Amount> Sales_Totals_by_Amounts { get; set; }public DbSet<Summary_of_Sales_by_Quarter> Summary_of_Sales_by_Quarters { get; set; }public DbSet<Summary_of_Sales_by_Year> Summary_of_Sales_by_Years { get; set; }protected override void OnModelCreating(DbModelBuilder modelBuilder){modelBuilder.Configurations.Add(new CategoryMap());modelBuilder.Configurations.Add(new CustomerDemographicMap());modelBuilder.Configurations.Add(new CustomerMap());modelBuilder.Configurations.Add(new EmployeeMap());modelBuilder.Configurations.Add(new Order_DetailMap());modelBuilder.Configurations.Add(new OrderMap());modelBuilder.Configurations.Add(new ProductMap());modelBuilder.Configurations.Add(new RegionMap());modelBuilder.Configurations.Add(new ShipperMap());modelBuilder.Configurations.Add(new SupplierMap());modelBuilder.Configurations.Add(new TerritoryMap());modelBuilder.Configurations.Add(new Alphabetical_list_of_productMap());modelBuilder.Configurations.Add(new Category_Sales_for_1997Map());modelBuilder.Configurations.Add(new Current_Product_ListMap());modelBuilder.Configurations.Add(new Customer_and_Suppliers_by_CityMap());modelBuilder.Configurations.Add(new InvoiceMap());modelBuilder.Configurations.Add(new Order_Details_ExtendedMap());modelBuilder.Configurations.Add(new Order_SubtotalMap());modelBuilder.Configurations.Add(new Orders_QryMap());modelBuilder.Configurations.Add(new Product_Sales_for_1997Map());modelBuilder.Configurations.Add(new Products_Above_Average_PriceMap());modelBuilder.Configurations.Add(new Products_by_CategoryMap());modelBuilder.Configurations.Add(new Sales_by_CategoryMap());modelBuilder.Configurations.Add(new Sales_Totals_by_AmountMap());modelBuilder.Configurations.Add(new Summary_of_Sales_by_QuarterMap());modelBuilder.Configurations.Add(new Summary_of_Sales_by_YearMap());}}}
最终来查看一下生成的文件
代码调用实例
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;using CodeFirstPowerTools.Models;namespace CodeFirstPowerTools{class Program{static void Main(string[] args){using (var db = new NorthwindContext()){IQueryable<Order> orders = from order in db.Orderswhere order.OrderID < 10256select order;foreach (Order order in orders){Console.WriteLine(order.ShipCity);}}Console.ReadLine();}}}
执行后结果如下
简单的使用到此为止。
0 0
- EntityFramework自动生成CodeFirst代码
- EntityFramework CodeFirst
- EntityFramework Codefirst搭建
- entityframework中的codefirst模式练习(一)
- entityframework中的codefirst模式练习(二)
- EntityFrameWork 从入门到熟悉(3)-CodeFirst
- 分享一个面向EntityFramework的代码生成工具(源码)
- EF| CodeFirst 代码先行
- Entityframework 伪CodeFirst开发模式应用于Sqlite数据库
- EF(EntityFramework) 的 CodeFirst 使用指南一(创建)
- EF(EntityFramework) 的 CodeFirst 使用指南二(基本使用)
- entityframework Identity codefirst 使用MySql作为数据存储的笔记
- EF之CodeFirst代码先行
- 【EF系列】CodeFirst代码优先
- 代码自动生成.
- 自动生成代码
- 代码自动生成软件
- ALV自动生成代码
- java main()方法
- php的正则表达式中结尾处的内容
- 使用cairo绘制图形的部分函数总结
- Window+solr+tomcat+IKAnalyzer (solr实战一)
- Android Studio如何格式化XML代码顺序。
- EntityFramework自动生成CodeFirst代码
- UserAgent:通过浏览器获取用户浏览器和电脑信息
- spring中 ClassPathXmlApplicationContext类的简单使用
- UVA 1586 - Molar mass
- java学习--java垃圾回收详析
- entity framework使用(codefirst)
- hdu 5078 Osu!(鞍山现场赛)
- Android读取JSON格式数据
- spring 监听器 IntrospectorCleanupListener简介