在本节中,您将添加一些类,这些类用于管理数据库中的电影。这些类是ASP.NET MVC 应用程序中的"模型(Model)"。
您将使用.NET Framework 数据访问技术Entity Framework,来定义和使用这些模型类。Entity Framework(通常称为 EF) 是支持代码优先的开发模式。代码优先允许您通过编写简单的类来创建对象模型。(相对于"原始的CLR objects",这也被称为POCO 类)然后可以从您的类创建数据库,这是一个非常干净快速的开发工作流程。
添加模型类
在解决方案资源管理器中,右键单击模型文件夹,选择添加,然后选择类.
输入Class名 "Movie"。
将下列五个属性添加到Movie
类:
public class Movie { public int ID { get; set; } public string Title { get; set; } public DateTime ReleaseDate { get; set; } public string Genre { get; set; } public decimal Price { get; set; } }
我们将使用Movie
类来表示数据库中的电影。Movie
对象的每个实例将对应数据库表的一行,
Movie
类的每个属性将对应表的一列。
在同一文件中,添加下面的MovieDBContext
类:
public class MovieDBContext : DbContext { public DbSet<Movie> Movies { get; set; } }
MovieDBContext
类代表Entity Framework的电影数据库类,这个类负责在数据库中获取,存储,更新,处理 Movie
类的实例。MovieDBContext
继承自Entity Framework的 DbContext
基类。
为了能够引用DbContext
和DbSet
,您需要在文件的顶部添加以下using
语句:
using System.Data.Entity;
下面显示了完整的Movie.cs文件。(一些不用的using语句已经被删除了)
using System; using System.Data.Entity; namespace MvcMovie.Models { public class Movie { public int ID { get; set; } public string Title { get; set; } public DateTime ReleaseDate { get; set; } public string Genre { get; set; } public decimal Price { get; set; } } public class MovieDBContext : DbContext { public DbSet<Movie> Movies { get; set; } } }
创建连接字符串并使用SQL Server LocalDB
您刚创建的MovieDBContext
类用来连接数据库,并将Movie
对象映射到数据库表记录。你可能会问一个问题,如何指定它将连接到那个数据库。通过在应用程序的Web.config文件中添加数据库连接信息来指定连接到那个数据库。
打开应用程序根目录的Web.config文件。(不是View文件夹下的Web.config文件。)打开红色高亮标记的Web.config文件。
在Web.config文件中的<connectionStrings>
内添加下面的连接字符串。
<add name="MovieDBContext" connectionString="Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|\Movies.mdf;Integrated Security=True" providerName="System.Data.SqlClient" />
下面的例子里显示了部分Web.config文件中所新添加的连接字符串:
<connectionStrings> <add name="DefaultConnection" connectionString="Data Source=(LocalDb)\v11.0;Initial Catalog=aspnet-MvcMovie-2012213181139;Integrated Security=true" providerName="System.Data.SqlClient" /> <add name="MovieDBContext" connectionString="Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|\Movies.mdf;Integrated Security=True" providerName="System.Data.SqlClient" /> </connectionStrings>
为了表示和存储电影数据到数据库中,上面少量的代码和XML是你所需要的一切。
接下来,您将创建一个新的MoviesController类,您可以用它来展示电影数据,并允许用户创建新的影片列表。
相关推荐
MVC控制器可以使用EF来操作数据库,模型类可以直接映射到Code First的实体类,或者在Model First中,可以从数据库生成的模型类中获取数据。 在这个“EFtest”项目中,你可能会看到如何创建和配置DbContext类,这是...
它演示了如何利用Entity Framework(EF)、Model-View-Controller(MVC)架构以及三层架构来实现对数据库的CRUD(创建、读取、更新、删除)操作。以下是关于这些技术及其相互作用的详细解释。 1. Entity Framework ...
这包括添加对Firebird数据提供者的引用,配置数据库连接字符串,以及使用EF Code First或Model First方法创建数据库模型。 6. **Code First/Model First**: Code First允许开发者从类库开始,定义实体类并自动...
JSON自动映射成Model是开发过程中常见的需求,尤其是在Android、iOS以及后端开发中,我们需要将接收到的JSON数据转化为可操作的对象模型,以便更好地处理数据。本篇将详细讲解这个过程,以及如何利用工具库高效地...
在本项目"使用EF对数据库进行增删改查操作(Console版本)"中,我们将深入探讨如何在控制台应用中利用EF Core实现对SQL Server数据库的基础操作。 首先,`Program.cs`是整个Console应用程序的入口点,它包含了`Main`...
MVC3(Model-View-Controller)和Entity Framework 4.1(简称EF4.1)是两个在Web开发领域广泛使用的框架,它们分别处理应用程序的结构设计和数据访问层。在这个主题中,我们将深入探讨这两个框架的核心概念、功能...
通过EF,我们可以轻松地实现对数据库的增删改查(CRUD)操作。 控制器(Controller)处理来自用户的请求,并决定如何响应。它调用模型进行业务逻辑处理,然后将结果传递给视图进行展示。在ASP.NET MVC中,控制器类...
在`ConfigureServices`方法中,我们将添加对EF Core和MySQL数据库的支持。我们需要引用`Microsoft.EntityFrameworkCore`和`Pomelo.EntityFrameworkCore.MySql`库,然后使用`AddDbContext`方法注册`DbContext`类,这...
在.NET开发中,Entity Framework(简称EF)是一个强大的对象关系映射(ORM)框架,它允许开发者使用C#等高级语言来操作数据库,而无需直接编写SQL语句。当你面对的数据库表名不是固定的,而是根据日期或其他条件动态...
在这个"C# EFCore一对多资源案例"中,我们将深入探讨如何在C#应用中实现一对多的关系模型,并通过EF Core进行数据操作。 首先,我们需要理解一对多关系的概念。在数据库设计中,一对多关系是指一个表(父表)中的...
Entity Framework(简称EF)是微软提供的一个对象关系映射(ORM)框架,它允许开发者以面向对象的方式来操作数据库,而无需关注底层的SQL语句。在C#中,使用EF可以极大地提高开发效率,因为它简化了数据库操作,使得...
Entity Framework(EF)是一个ORM(对象关系映射)工具,允许开发者使用.NET类来操作数据库,而不是直接编写SQL语句。通过EF,模型可以直接操作数据库表,实现数据的增删改查。 2. **视图(View)**:视图是用户...
EF Core还支持多种编程模式,包括Code First、Model First和Database First,方便开发者根据自己的需求选择使用。 EF Core支持.NET实现包括: *** *** *** Core - UWP(通用Windows平台) 使用EF Core时,可以...
**EF ModelFirst 概述** Entity Framework (EF) 是 Microsoft 提供的一款...通过分析和学习这个示例,初学者可以更好地理解 EF ModelFirst 如何将数据模型转化为实际的数据库操作,从而为构建复杂的业务应用奠定基础。
在实际开发中,`EF_DEMO`压缩包中的示例代码可能包含了这些关系的完整实现,包括数据库迁移、实体类、上下文类以及可能的CRUD操作。这些代码可以帮助你更好地理解如何在EF6中处理Oracle数据库的一对多和多对多关系。...
例如,可以定义一个`IRepository`接口,包含`Add`, `Delete`, `Update` 和 `GetAll`等方法,然后创建一个`EfRepository`类实现该接口,利用EF的DbContext进行数据库操作。在控制器中,通过依赖注入容器(如Unity或...
3. **LINQ与EF结合**:将LINQ与EF结合使用,开发者可以方便地在代码中直接对实体进行查询,而无需编写SQL语句。例如,可以通过LINQ表达式进行筛选、排序、分组等操作,这些操作会自动转换为对应的SQL语句执行。 4. ...
- **对象关系映射(O/R Mapping)**:EF通过将数据库中的表转换成.NET对象(如类),实现了对数据的操作无需直接编写SQL语句的功能,从而提高了开发效率。 - **集成于Visual Studio**:EF自Visual Studio 2008 ...
在这个基于EF6的实用控件中,我们将深入探讨如何利用Model First方法进行数据库设计与操作。 Model First是一种开发策略,它首先从数据模型开始,然后自动生成数据库结构。这种方式让开发者能够专注于业务逻辑和...
通过EF,我们可以直接操作实体类,而框架会自动将这些操作转化为相应的数据库操作,极大地提高了开发效率和代码的可读性。 **二、EF工作原理** EF的核心概念包括上下文(DbContext)、实体(Entities)、数据模型...