首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Entity Framework初体验

零、初体验 新建控制台程序,名称为:MyFirstEF 在NuGet中搜索 Entity Framework,如下图: ?...EF上下文的类,此上下文是与数据库交互的一个中间桥梁,我们可以称之为会话,并且为每一个模型公开一个DbSet: public class EfDbContext : DbContext { public...EfDbContext() { } public DbSet Blogs { get; set; } } 注:上下文派生类中定义DbSet有如下三种方式: //用DbSet...= "http://www.baidu.com" }); efDbContext.SaveChanges(); } } 运行控制台程序,如果未出现任何报错,则会在VS对应的本地数据库中看到新创建的...注:如果未找到或无法访问服务器的错误,则说明你本地vs未安装LocalDB数据库,这时你可以安装LocalDB数据库,或者在App.config中将连接字符串修改为SQL Server 数据库的地址。

51300

ASP.NET Core 使用 SQLite 教程,EF SQLite教程

ASP.NET Core 程序,创建模型、上下文,生成数据库,对数据库增删查改。...需要建立一个上下文类和模型类,把模型类包含在上下文类中,上下文类中包含进来的模型类,将会生成对应的数据库表。 下面这代码不用自己操作,只需要看就行。...A、B都是模型类,因为可以被生成数据库表,所以A也可以叫实体类,B因为没有 DbSet ,所以B叫模型类,不叫实体类。 A类将会生成一个真实的数据库中的表,有对应关系,所以,他是“实体类”。...这里的构造函数内容为空,因为暂时没有什么要配置的。 步骤3 在构造函数下面加上代码,对模型类进行映射。...”)); 表示     向应用注入DbContext (数据库上下文服务),注入的上下文类型为 MyContext> (options=>options.UseSqlite(“连接字符串”) 是 lambda

4.7K50
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    【.NETCore 3】Ids4 ║ 统一角色管理(上)

    如果你使用 Ids4 项目的话(这里准确来讲,是开发 Identity 的话,因为两者是不一样的哟),会有两种开发方式. 1、简述 Ids4 数据库框架三模块 在我们的 Ids4 项目中,我们在之前的文章中也说到了...因为我们自定义了 ApplicationRole ,所以在数据库上下文中,也需要对 Role 信息单独做处理,而且还比较麻烦,这个具体的,可以通过 F12 查看源码就能了解到相应的逻辑,咱们就直接这么修改...: // 注意下 红色的 int类型,到时候创建的表的主键是 int 类型的。...,就是上下文里,这里不多说: 这里有一个要注意一下,如果我们什么都不操作,默认生成的数据库表名是 AspNetRoles ,我们也可以自定义修改成自己的表名,直接修改实体类名是不行的,因为我们可以看一下生成的迁移记录...,无论修改成什么,只要我们的扩展实体类是继承了类IdentityRole,那表名还是默认的 AspNetRoles: 那我们可以通过配置EFCore 的实体映射来做相应的处理,还记得我们刚刚的上下文么

    83740

    ASP.NET MVC5高级编程——(3)MVC模式的模型

    而称ArtistID属性为外键属性(foreign key),因为与模型对应的数据库中,专辑表(Album)和艺术家(Artist)表存在对应的外键关系,即ArtistID是Album表的外键!...该派生类具有一个或多个DbSet类型的属性,类型DbSet中的每一个T代表一个想要持久保存的对象。...如果不配置从模型到数据库中表和列的具体映射,EF将使用约定创建一个数据库模式。 显式的为代码优先数据上下文配置连接很简单,即向web.config文件中添加一个连接字符串。 ?...现在我们可以重新启动程序,因为我们设置的是DropCreateDatabaseAlways模式,所以如果不重启程序的话,会报错的: ? 错误为不能删除数据库,因为它正在使用!...第二种解决方案:强类型模型,创建一个视图特定模型的对象,将专辑信息、流派和艺术家信息传递给一个视图。

    4.8K40

    ASP.NET MVC 随想录——探索ASP.NET Identity 身份验证和基于角色的授权,中级篇

    在前一篇文章中,我介绍了ASP.NET Identity 基本API的运用并创建了若干用户账号。...本文的示例,你可以在此下载和预览: 点此进行预览 点此下载示例代码 探索身份验证与授权 在这一小节中,我将阐述和证明ASP.NET 身份验证和授权的工作原理和运行机制,然后介绍怎样使用Katana...在该事件中,请求的URL会依据web.config中的authorization 配置节点进行授权,如下所示授予Kim以及所有Role为Administrator的成员具有访问权限,并且拒绝John以及匿名用户访问...ReturnUrl=%2Fhome%2Findex 因为需要登陆,所以可以将Login 设置为允许匿名登陆,只需要在Action的上面添加 [AllowAnonymous] 特性标签,如下所示: [...,因为我们还可能要去扩展其他字段,故定义一个名为AppRole的类,就像AppUser那样,它继承自IdentityRole: public class AppRole:IdentityRole

    3.5K60

    Entity Framework Core 2.0 新特性

    此特性允许使用Linq查询表达式直接定义在实体类型的元数据模型上。这样的过滤器会自动应用到任何LINQ查询所涉及的那些实体类型,包括间接引用的实体类型(对象引用,导航属性)。...模型级过滤器将使用正确的上下文实例中的值,即执行查询的那个。   使用  IgnoreQueryFilters() 方法在一次查询中禁用过滤器。...在 ef core 2.0 中,我们将自定义的DbContext类型注册到DbContextPool服务中,可让该数据库上下文类型的实例重复使用。...按照惯例,将为所属类型创建一个影子主键,它将通过使用表拆分映射到与所有者相同的表。...目前只支持标量函数 EF Core迁移将不负责创建它,您必须在数据库中创建映射函数 九.code first 实体配置   在EF6可以通过 EntityTypeConfiguraiton 封装特定实体类型的配置代码

    1.9K50

    asp.net web api 2.2 基础框架(带例子)

    创建model 在LegacyApplication.Models项目里建立相应的文件夹作为子模块,然后创建model,例如Nationality.cs: using System.ComponentModel.DataAnnotations.Schema...,AncestorIds定义为所有祖先Id层级别连接到一起的一个字符串,需要自己实现。...因为我的Repository可能还需要其他的自定义方法,这些自定义方法需要提取到这个接口里面以便使用。...(我认为这样最好) g.内置把汉字转为拼音首字母的工具,PinyinTools h.所有上传文件的Model需要实现IFileEntity接口,参考代码中的例子。...i.所有后台翻页返回的结果应该是使用PaginatedItemsViewModel。 里面有很多例子,请参考。 注意:项目启动后显示错误页,因为我把Home页去掉了。

    4.9K90

    .NET Core 获取数据库上下文实例的方法和配置连接字符串

    .NET Core 获取数据库上下文实例的方法和配置连接字符串 目录 .NET Core 获取数据库上下文实例的方法和配置连接字符串 ASP.NET Core 注入 .NET Core 注入 无签名上下文...OnConfigure 配置 有签名上下文构造函数和自己new一个上下文 假设数据库就两个表:User、Blogs, 模型类如下 public class User {...OnConfigure 配置 上面两个示例中,连接字符串都是使用 Action optionsAction 来配置的。...这种情况是上下文存在一个无签名构造函数时,外界使用此构造函数直接实例化上下文。...OnConfiguring会在无注入、也没有使用有签名构造函数时才会生效,或者描述为多种配置上下文方式中优先级最低。

    2.2K50

    Entity Framework应用:使用Code First模式管理数据库创建和填充种子数据

    一、管理数据库连接 1、使用配置文件管理连接之约定 在数据库上下文类中,如果我们只继承了无参数的DbContext,并且在配置文件中创建了和数据库上下文类同名的连接字符串,那么EF会使用该连接字符串自动计算出数据库的位置和数据库名...但是许多情况下我们总想在数据库创建之后、首次使用之前就插入一些数据。此外,开发阶段可能想以admin的资格为其填充一些数据,或者为了测试应用在特定的场景中表现如何,想要伪造一些数据。...使用EF的Code First方式对上面的模型创建数据库上下文: public class SampleDbEntities : DbContext { public virtual DbSet...,并传入数据库上下文作为类型参数。...这里值得注意的是我们并没有调用DbContext.SaveChanges()方法,因为它会在基类中自动调用。

    1.2K20

    Entity Framework 约定

    我们定义完模型,还需要让EF上下文你知道应该映射那些模型,此时我们需要通过 DbSet 属性来暴露模型的。...如果一个类中既没有id属性,也没有类名+id的属性,那么代码在运行时将会报错,因为EF没有找到符合要求的字段创建主键。...在Code First 不能推断出模型中的主键,并且没有通过Data Annotations 或者Fluent API进行手动配置主键时,该模型将会自动被配置为复杂类型,检测复杂类型时要求该类型没有引用实体类型的属性...自定义约定包含一个约定接口 IConvention,IConceptualModelConvention 是概念模型接口,在模型创建后被调用,IStoreModelConvention 接口为存储模型接口...,在模型创建之后用于操作对模型的存储,***自定义类约定***都必须在 OnModelCreating 方法中显式配置,例如我们要将模型中类型为DateTime的属性映射为datetime2,可进行如下配置

    1.3K10

    ASP.Net Core的Code Fist代码先行操作方法

    Asp.Net  core的Code Fist(代码先行)主要有以下几步: 1.创建实体类 2.创建数据库上下文 3.填加连接字符串 4.依赖注入 5.添加基架工具并执行初始迁移 6搭建模型的基本架构(...更具模型生成网页Page) 首先需要在创建出实体类,此处以微软官方文档中的Movice实体类为例。...使用 Startup.cs 文件中的依存关系注入容器注册数据库上下文。...Add-Migration 命令生成用于创建初始数据库架构的代码。 此架构以(Models/MovieContext.cs 文件中的)DbContext 中指定的模型为基础。...Update-Database用于将以上操作保存到数据库中(生成数据库) 搭建“电影”模型的基架 打开项目目录(包含 Program.cs、Startup.cs 和 .csproj 文件的目录)中的命令窗口

    882170

    EF 约定介绍

    当前环境为EF Code First开发模式中 一、EF默认约定 1、常用约定 (1)、当没有显示指定实体主键的时候,EF会默认将长得最像Id的属性(且类型为GUID)设为主键 (2)、设计实体时,当一个实体包含一个集合属性...知道哪些类型包含在当前模型中,因此,我们需要自定义一个ZdyNameDbContext,并继承DbContext,并在自定义DbContext中暴露需要暴露的类型,这样在Code First开发模式中,...就可以使用 context(数据库上下文),使用这些预先暴露的DbSet类型,具体的代码如下:   public class EFStudyDbContext:DbContext {...//暴露City的DbSet类型的属性 public DbSet Citys { get; set; } //暴露Town的DbSet类型的属性...5、复杂类型约定(Complex Types Conventions) 如果Code First无法从类型中推测出主键,也没有通过Data Annotations或者Fluent Api进行注册的主键,

    1.6K100

    在.NET Core类库中使用EF Core迁移数据库到SQL Server

    ,并定义好我们所要使用的数据库上下文,很简单,接下来开始我们的正文 /// /// 系统上下文 /// public class LightContext : DbContext { public...{ get; set; } /// /// 角色表 /// public DbSet Role { get; set; } } 1、问题汇总 首先要确保仓储类库中已经引入以下两个Nuget包,没有的话请使用包管理器进行安装...解决方法: 在项目文件中添加以下节点: netcoreapp2.02.0.3 c)、重新执行b步骤的命令,报错信息如下: 错误提示: Unable to create an object of type...这个问题如果是在Web项目,并且配置了DbContext的链接字符串的话,是不会出现此问题的。...)、因为string类型的字段迁移到数据库之后的数据类型为nvarchar(max)并且是可空类型的,下面我们就使用Fluent API对ApplicationUser表字段进行配置,同样你也可以使用属性注解的方式进行配置

    1.7K60

    ASP.NET Core + SaasKit + PostgreSQL + Citus 的多租户应用程序架构示例

    添加 Tenancy(租赁) 到 App 定义 Entity Framework Core 上下文和模型 数据库上下文类提供代码和数据库之间的接口。...在数据库中,问题表包含一个 tenant_id 列。Entity Framework Core 足够聪明,可以确定此属性表示租户和问题之间的一对多关系。稍后在查询数据时会用到它。...您已经有了前者(您之前创建的 Tenant 类),因此在项目根目录中创建一个名为 CachingTenantResolver.cs 的新文件: using System; using System.Collections.Generic...准备好租户模型(tenant model)和租户解析器(tenant resolver)后, 打开 Startup 类并在 ConfigureServices 方法中的任何位置添加此行: services.AddMultitenancy...如果您直接访问该 URL,您将看到一个错误,因为您尚未设置任何 默认租户行为。

    2K20

    【ASP.NET Core 基础知识】--数据库连接--使用Entity Framework Core进行数据库访问

    在 Entity Framework Core(EF Core)中,ORM 的概念依然适用,EF Core 提供了 ORM 功能,允许开发者使用 .NET 类型(如类和对象)来表示数据库中的表格和数据,...DbContext:DbContext 是 EF Core 中表示数据库连接和模型的类。每个 DbContext 实例都与一个数据库上下文关联,并且可以用于执行查询和修改数据库中的数据。...DbSet:DbSet 是 DbContext 中表示数据库表的属性。每个 DbSet 表示一个表,并且可以用于查询和修改表中的数据。...回滚事务:如果操作中发生错误,调用 Rollback() 方法回滚事务。 Tip: 每个 DbContext 实例都有自己的事务上下文。...如果你需要在同一个 DbContext 实例中访问多个数据库,你可以通过在 DbContext 类中添加多个 DbSet 属性来实现这一点。每个 DbSet 属性对应一个数据库中的表。

    62400

    ASP.NET Core MVC+Layui使用EF Core连接MySQL执行简单的CRUD操作

    三、创建对应数据库表的实体模型:   注意该篇博客使用的是手动模型优先的方式进行数据库表字段与模型属性映射,当然如果大家觉得这样子比较麻烦的话可以真正意义上的模型优先,直接创建模型在program.cs...中配置创建对应模型的数据库逻辑代码即可无需手动创建数据库,可参考官网文档教程(https://docs.microsoft.com/zh-cn/aspnet/core/data/ef-rp/intro?...创建用户模型(UserInfo): 注意:属性大小写和数据库中的表字段保持一致,Id 属性成为此类对应的数据库表的主键列。 默认情况下,EF Core 将名为 Id 或 xxxID 的属性视为主键。...: 概述: 数据库上下文类是为给定数据模型协调 EF Core 功能的主类。...上下文派生自 Microsoft.EntityFrameworkCore.DbContext。 上下文指定数据模型中包含哪些实体。

    2.8K10

    .NET 云原生架构师训练营(模块二 基础巩固 EF Core 基础与配置)--学习笔记

    异步操作对于在丰富的客户端应用程序中保持响应式 UI 非常重要,并且还可以增加 web 应用程序中的吞吐量,在这些应用程序中,它们可释放线程以处理 web 应用程序中的其他请求 var blog = new...上下文池可以通过重复使用上下文实例,而不是为每个请求创建新实例,从而提高大规模方案(如 web 服务器)的吞吐量。...请求处理完成后,实例的任何状态都将被重置,并且实例本身会返回池中。 避免在维护状态的应用程序中使用上下文池。 例如,不应在请求之间共享的上下文中的私有字段。...tabs=data-annotations 在模型中包含类型 class MyContext : DbContext { // 对应一张表(推荐) public DbSet...此属性也被视为并发标记,这确保了在你查询行后,如果正在更新的行发生了更改,则会出现异常。

    76411

    Entity Framework Core 之数据库迁移

    正文 1.数据库迁移 先了解一下什么是"数据库迁移",它提供了一种方法,可以逐步将Code First的实体架构更改应用于数据库,以保持数据库与EF Core模型同步,同时保留数据库中的现有数据。...EF Core的数据迁移相对EF6来说改了不少也简化了一些.所以我们现在就来看看如何进行数据迁移 我们以官方代码来做为例子..先来创建一个简单的上下文....Microsoft.EntityFrameworkCore.Tools 打开NuGet包管理控制台 选择默认项目为实体上下文所在的程序集如下: ? 首先我们需要添加一个迁移版本....因为第一次生成的迁移方法是按照新增来迁移的..而不是修改. 错误信息可能会如图: ? 解决方法是找到XXXXXXXXXXXXX_BanBen1.cs - 主迁移文件,删除Up和Down里面的代码.....文件名,需要生成迁移脚本的上下文(多个上下文的情况). 5.迁移脚本的帮助说明.

    1.1K50
    领券