ef601
Posted tanqurey
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ef601相关的知识,希望对你有一定的参考价值。
1、简介
1) 架构介绍
2、补充
1)模型设计器界面右键可调出模型浏览器
3、安装EF
1)通过Nuget包管理工具进行下载
打开Nuget包管理工具,搜索下载EntityFramework
将在引用处引入:
System.EntityFramework,
System.EntityFramework.SqlServer
2)EF5.0与6.x的内容分布:
4.db First
开发前必须有完整的数据库设计作为依据
确定所生成对象名称的单复数形式 是否勾选
如果勾选,所生成的数据库操作对象都会带复数
1)使用dbFirst的设计流程
①首先设置好数据库,包括关联,外键等等
②包管理工具中安装EF
③项目右键添加——数据——ADO.NET实体数据模型——从数据库生成
根据提示进行操作,选择所有需要的表
④系统生成.context.cs文件,内容即为EF数据操作类
2)使用EF数据库操作类操作数据库
①向表中插入数据
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace DbFirst1 { class Program { static void Main(string[] args) { using (EFDemoEntities db = new EFDemoEntities()) { db.Student.Add(new Student() { StuName="Michael", EnterDate=DateTime.Now, ClassInfo_Id=2 }); db.SaveChanges(); } Console.WriteLine("完成动作"); Console.ReadLine(); } } }
注意:由于外键约束,如果不存在相应的班级id,则会报错,插入失败
5、model first
分局model生成数据库,与sqlserver可视化类视图相似
1)使用方式
①安装EF
②项目右键添加——数据——ADO.NET实体数据模型——空
③在可视化工具中编辑:空白处右键新增实体并为其设置属性,规定约束
④添加关联
⑤映射到数据库:
空白处右键——根据模型生成数据库
按照提示操作,系统将生成实体类同时生成一段创建数据库的代码
⑥执行所生成的sql文件
2)插入数据
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ModelFisrt1 { class Program { static void Main(string[] args) { using (Model1Container container = new Model1Container()) { container.Category.Add(new Category() { CateName="Phone" }); container.SaveChanges(); } Console.WriteLine("okok"); Console.Read(); } } }
6.Code First
先写代码生成实体,再根据实体生成数据库
1)创建方式
①安装EF
②项目右键添加——数据——ADO.NET实体数据模型——空的code first模型
③在弹出的 model文件中完成数据库操作类代码的编写
namespace CodeFirst1 { using System; using System.ComponentModel.DataAnnotations; using System.Data.Entity; using System.Linq; public class DemoModel : DbContext { //您的上下文已配置为从您的应用程序的配置文件(App.config 或 Web.config) //使用“DemoModel”连接字符串。默认情况下,此连接字符串针对您的 LocalDb 实例上的 //“CodeFirst1.DemoModel”数据库。 // //如果您想要针对其他数据库和/或数据库提供程序,请在应用程序配置文件中修改“DemoModel” //连接字符串。 public DemoModel() : base("name=DemoModel") { } protected override void OnModelCreating(DbModelBuilder modelBuilder) { // 改变一些配置 base.OnModelCreating(modelBuilder); } //为您要在模型中包含的每种实体类型都添加 DbSet。有关配置和使用 Code First 模型 //的详细信息,请参阅 http://go.microsoft.com/fwlink/?LinkId=390109。 public virtual DbSet<MyEntity> MyEntities { get; set; } } public class MyEntity { [Key] public int Id { get; set; } public string Name { get; set; } } //public class MyEntity //{ // public int Id { get; set; } // public string Name { get; set; } //} }
④App.Config修改连接字符串
<connectionStrings> <add name="DemoModel" connectionString="data source=127.0.0.1;initial catalog=CodeFirst1.DemoModel;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework" providerName="System.Data.SqlClient" /> </connectionStrings>
⑤书写主程序代码
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace CodeFirst1 { class Program { static void Main(string[] args) { using (DemoModel db= new DemoModel()) { db.MyEntities.Add(new MyEntity() { Name = "John" }); db.SaveChanges(); } Console.WriteLine("ok"); Console.ReadLine(); } } }
执行上面代码后,系统自动根据连接字符串创建一个新的数据库
以上是关于ef601的主要内容,如果未能解决你的问题,请参考以下文章