Entity Framework 6三层架构入门:创建模型Model

需求分析

1、基本数据:学生、学院、班级、课程;现在还不用考虑太复杂的项目逻辑关系,这几个就能体现数据间的关系,关系图如下:

这是简单的数据关系,可以自己扩充。

2、数据库关系梳理

为实现数据的简洁与三层架构的高内聚,低耦合,将数据实现分层:

1、BaseEntity:所有数据的父类,派生出一切数据;所有数据的操作都由它来实现;

2、Person:学生类,有姓名,学号,出生日期,班级号和学院,以及所学课程;

3、Course:课程类,设置一个课程名,也可以自己添加新的信息;

4、College:学院类,设置学院名和介绍;

5、Class:班级类,设置班级名,班级号和班级介绍。

3、必备基础知识

EF6:

EF6 可实现许多热门 O/RM 功能:

  • 不依赖于任何 EF 类型的POCO 实体类的映射
  • 自动更改跟踪
  • 标识解析和工作单元
  • 预先、延迟和显式加载
  • 使用LINQ转换强类型查询
  • 丰富的映射功能,可支持:
    • 一对一、一对多和多对多关系
    • 继承(每个层次结构一张表、每个类型一张表和每个具体类一张表)
    • 复杂类型
    • 存储过程
  • 通过可视化设计器创建实体模型。
  • 通过编写代码创建实体模型的“Code First”体验。
  • 既可从现有数据库生成模型,然后手动编辑,也可从头开始创建模型,然后用于生成新的数据库。
  • 与 .NET Framework 应用程序模型(包括 ASP.NET)集成,并通过数据绑定与 WPF 和 WinForms 集成。
  • 基于 ADO.NET 的数据库连接和可用于连接到 SQL Server、Oracle、MySQL、SQLite、PostgreSQL、DB2 等的众多c

SQL server:

方便使用的数据库。

4、接下来,就是创建模型层的步骤

创建类库

1、打开 Visual Studio,并使用C# " .NET 类库(.NET Framework) " 模板创建一个 项目。 将项目命名为你先要的名字 ,然后选择 "确定"

 2、选择Entity Framework版本为4.7.2,点击确定,建立类库。

安装实体框架Entity Framework 6

  • 从 "工具" 菜单中,选择 " NuGet 包管理器",然后选择 "程序包管理器控制台"。

  • 在“程序包管理器控制台”窗口中,输入以下命令:

    Install-Package EntityFramework

    一定要先安装,整个项目都是基于该实体框架来构建的。

创建基础数据模型

   public class BaseEntity
    {
        public Guid Id { get; set; } = Guid.NewGuid();
        public bool IsRemove { get; set; }
        public DateTime DateTime { get; set; }
    }

创建数据模型

Person 实体

在 "模型" 文件夹中,右键单击解决方案资源管理器的文件夹,然后选择 "添加 > ",创建名为Student.cs的类文件。 将模板代码替换为以下代码:

   public class Person:BaseEntity
    {
        public Guid GuidId { get; set; } = Guid.NewGuid();

        public string Name { get; set; }

        public DateTime BoreTime { get; set; }

        [ForeignKey(nameof(Class))]
        public Guid ClassId { get; set; }
        public Class Class { get; set; }

        public College CollegeName { get; set; }
        public virtual ICollection<Course>Course { get; set; }
    }

 在 "模型" 文件夹中,右键单击解决方案资源管理器的文件夹,然后选择 "添加 > ",创建名为Course.cs的类文件。 将模板代码替换为以下代码:

  public class Course:BaseEntity
    {
        public string CourseName { get; set; }
    }

 在 "模型" 文件夹中,右键单击解决方案资源管理器的文件夹,然后选择 "添加 > ",创建名为Class.cs的类文件。 将模板代码替换为以下代码:

    public class Class : BaseEntity
    {
        public string ClassName { get; set; }
        public string Recommend { get; set; }
        public Guid ClassOfId { get; set; }
    }

 在 "模型" 文件夹中,右键单击解决方案资源管理器的文件夹,然后选择 "添加 > ",创建名为College.cs的类文件。 将模板代码替换为以下代码:

   public class College:BaseEntity
    {
        public string CollegeName { get; set; }
        public string Recommend { set; get; }
    }

用字符串链接数据库(通过XML)

找到如图所示配置文件,添加如下代码:

<connectionStrings>
    <add name="你要填的" connectionString="server=你是数据库名;database=你的数据库名称;uid=账号;pwd=密码" providerName="System.Data.Sqlclient"/>
  </connectionStrings>

数据库就算是链接上了。

注册上下文

创建一个Context.cs文件,对数据库进行基本配置。

public class StudentContext:DbContext
    {
       public StudentContext():base("con")
        {
            Database.SetInitializer<StudentContext>(null);
        }
        protected override void OnModelCreating(DbModelBuilder modelBuilder)
        {
            base.OnModelCreating(modelBuilder);
            modelBuilder.Conventions.Remove<OneToManyCascadeDeleteConvention>();
            modelBuilder.Conventions.Remove<ManyToManyCascadeDeleteConvention>();
        }
        public DbSet<Person> Person { get; set; }
        public DbSet<Class> Class { get; set; }
        public DbSet<College> College { get; set; }
        public DbSet<Course> Course { get; set; }
    }

配置完后,数据库就可以根据外键,主键进行访问,同时,这个容器还是数据访问层的必须类,后续的操作都依靠它,

使用Code First进行连接

接下来,生成项目,然后就可以开始迁移了。

依次使用如下指令:

enable-migrations
add-migration ‘createDb’
update-database

接下来,你的模型层就建好了。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码
< <上一篇
下一篇>>