Entity Framework学习一:在.net类基础上创建新数据库

此文章为读Code-First develoment with entity framework简单笔记。

1.首先我们创建一个Person类

public class Person
    {
        public int PersonId { get; set; }
        public string FirstName { get; set; }
        public string LastName { get; set; }
    }

接着创建Context类,该类继承于DbContext类

public class Context:DbContext
    {
        public Context() : base("ConnectionString")
        {

        }

        public DbSet<Person> People { get; set; }
    }

注意base(“ConnectionString”)需要配置链接字符串,否则EF会使用默认连接设置。

<connectionStrings>
<add name="ConnectionString"
connectionString="data source=192.168.0.14;initial catalog=EfSample;user id=sa;password="
providerName="System.Data.SqlClient"/>
</connectionStrings>

使用下面代码,如果数据库不存在,那么会在数据创建数据

static void Main(string[] args)
        {
            using(var context=new Context())
            {
               bool temp= context.Database.CreateIfNotExists();
                if (temp)
                {
                    Console.WriteLine("创建成功!");
                }
                else
                {
                    Console.WriteLine("创建失败!");
                }
            }

            Console.ReadKey();
        }

运行本段代码后你会发现在数据库中创建了名为”EfSample”的数据库,这个数据库名称就是刚刚在配置文件中设置连接字符串的数据库名。

2.增加一条记录到我们创建的数据库

class Program
    {
        static void Main(string[] args)
        {
            using(var context=new Context())
            {
               bool temp= context.Database.CreateIfNotExists();

                var person = new Person
                {
                    FirstName = "John",
                    LastName = "Doe"
                };
                context.People.Add(person);
                context.SaveChanges();

            }

            Console.ReadKey();
        }
    }

使用这段代码会发现在数据库中创建了People表,并增加了一条记录,EF为自动判断数据库中是否有People表(表名根据Context类中定义的public DbSet<Person> People { get; set; }属性名称)。我们也可以映射自己已经创建好的表,在后面会讲到。在这段代码中你为发现我们并没有给PersonId赋值,EF会自动把+Id名称的自动设置为表主键。

时间: 2024-10-12 05:37:25

Entity Framework学习一:在.net类基础上创建新数据库的相关文章

Entity Framework 学习笔记(2)

上期回顾:Entity Framework 学习笔记(1) Entity Framework最主要的东西,就是自己创建的.继承于DbContext的类: /// <summary> /// Context相当于一个数据库 /// </summary> public class MusicContext : DbContext { //base("LocalDB")表示要用到config文件中的名为"LcoalDB"的连接字符串 public

Entity Framework 学习

Entity Framework 学习初级篇1--EF基本概况... 2 Entity Framework 学习初级篇2--ObjectContext.ObjectQuery.ObjectStateEntry.ObjectStateManager类的介绍... 7 Entity Framework 学习初级篇3-- LINQ TOEntities. 10 Entity Framework 学习初级篇4--EntitySQL. 17 Entity Framework 学习初级篇5--ObjectQ

Entity Framework学习之创建Entity Framework数据模型

1.准备 Visual Studio 2013 .NET 4.5 Entity Framework 6 (EntityFramework 6.1.0 NuGet package) Windows Azure SDK 2.2 (可选) 2.Contoso University web应用程序 此应用程序允许用户 查看.更新student. course和instructor 信息: 网站UI样式是由内置模板生成的 3.新建MVC5 web应用程序 新建项目并命名为"ContosoUniversit

Entity Framework 学习第一天 续

改写第一天的增删改查方法,观察增删改查的本质 1 using System; 2 using System.Collections.Generic; 3 using System.Data.Entity.Infrastructure; 4 using System.Linq; 5 using System.Text; 6 using System.Threading.Tasks; 7 8 namespace EFConsole 9 { 10 class Program 11 { 12 publi

Entity Framework学习中级篇

1-EF支持复杂类型的实现 本节,将介绍如何手动构造复杂类型(ComplexType)以及复杂类型的简单操作. 通常,复杂类型是指那些由几个简单的类型组合而成的类型.比如:一张Customer表,其中有FristName和LastName字段,那么对应的Customer实体类将会有FristName和LastName这两个属性.当我们想把FirstName和LastName合成一个名为CustomerName属性时,此时,如果要在EF中实现这个目的,那么我们就需要用到复杂类型. 目前,由于EF不

MVC5 Entity Framework学习之实现主要的CRUD功能

在上一篇文章中,我们使用Entity Framework 和SQL Server LocalDB创建了一个MVC应用程序,并使用它来存储和显示数据.在这篇文章中,你将对由 MVC框架自己主动创建的CRUD(create, read, update, delete)代码进行改动. 注意:通常我们在控制器和数据訪问层之间创建一个抽象层来实现仓储模式.为了将注意力聚焦在怎样使用实体框架上.这里暂没有使用仓储模式. 在本篇文章中,要创建的web页面: watermark/2/text/aHR0cDovL

MVC5 Entity Framework学习之更新相关数据

在上篇文章中学习了如何在页面中显示相关数据,本节中将学习如何对相关数据进行更新.对于大多数实体关系,可以通过更新外键或导航属性来更新数据,对于多对多关系,Entity Framework不会直接公开连接表,所以你需要通过相应的导航属性来添加和移除实体. 先看完成后的效果图 为Courses自定义Create 和Edit 页面 当一个新的course实体被创建时,该实体必须关联到一个已存在的department.要做到这一点,生成的框架代码应该要包括控制器方法和用于选择department的下列列

MVC5 Entity Framework学习之处理并发

之前你已经学习了如何更新数据,那么在本节你将学习如何在当多个用户在同一时间更新同一实体时处理冲突. 修改与Department实体相关的那些页面以便它们能够i处理并发错误.下面的截图是Index 和Delete页面,以及当出现并发冲突时的错误消息. 并发冲突 当一个用户对实体的数据进行编辑,然后另一个用户在前一个用户将更改写入到数据库之前更新同一实体的数据时将发生并发冲突.如果你没有启用冲突检测,那么最后一次对数据库的更新将会覆盖其他用户对数据库所做的更改.在大部分应用程序中,这种风险是可以接受

MVC5 Entity Framework学习之创建复杂的数据模型

Contoso University示例程序演示了如何使用Entity Framework 6 Code First 和 Visual Studio 2013创建ASP.NET MVC 5应用程序. 在上一篇文章中你已经创建了由三个实体组成的简单的数据模型.在本文章中你将会添加更多的实体和关系,并且通过指定格式.验证和数据库映射规则来自定义数据模型.这里介绍两种自定义数据模型的方法:向实体类中添加属性和向数据库上下文类中添加代码. 下面是完成后的数据模型类图 1.使用属性来自定义数据模型 在本节