團(tuán)隊(duì)開(kāi)發(fā)框架實(shí)戰(zhàn)—DbContext

提到DbContext,對(duì)于經(jīng)常使用DbFirst模式的開(kāi)發(fā)者來(lái)說(shuō)已經(jīng)再熟悉不過(guò)了,EntityFramework全靠這員大將。它的作用是代表與數(shù)據(jù)庫(kù)連接的會(huì)話,提供了查詢(xún)、狀態(tài)跟蹤、保存等功能。
還有一個(gè)重要的對(duì)象是DbSet,對(duì)實(shí)體類(lèi)型提供了集合操作,比如Add、Attach、Remove。繼承了DbQuery,所以可以提供查詢(xún)功能。

ActDbContext.cs示例

using Microsoft.EntityFrameworkCore;
using Rdf.Domain.Entities.Act;

namespace Rdf.EntityFrameworkCore
{
    public class ActDbContext : DbContext
    {
        public ActDbContext(DbContextOptions<ActDbContext> options)
            : base(options)
        {
           
        }

        #region Act
        public DbSet<User> Users { get; set; }
        public DbSet<Role> Roles { get; set; }
        public DbSet<OrganizationUnit> OrganizationUnits { get; set; }
        public DbSet<Module> Modules { get; set; }
        public DbSet<Function> Functions { get; set; }
        public DbSet<Edition> Editions { get; set; }
        public DbSet<Tenant> Tenants { get; set; }

        public DbSet<UserRole> UserRoles { get; set; }
        public DbSet<RoleModule> RoleModules { get; set; }
        public DbSet<ModuleFunction> ModuleFunctions { get; set; }
        public DbSet<UserOrganizationUnit> UserOrganizationUnits { get; set; }
        #endregion

        protected override void OnModelCreating(ModelBuilder builder)
        {
            builder.Entity<Role>().ToTable("Act_Role");
            builder.Entity<Role>().HasKey(k => k.Id);
            builder.Entity<Role>().Property(t => t.Id).HasColumnName("RoleId");
            base.OnModelCreating(builder);
        }
    }
}

說(shuō)明:DbContext 需要引用 Microsoft.EntityFrameworkCore

增加對(duì)EF的支持

我們打開(kāi)Startup.cs修改ConfigureServices(IServiceCollection services)方法,增加對(duì)EF的支持

// This method gets called by the runtime. Use this method to add services to the container.
public void ConfigureServices(IServiceCollection services)
{
    // Add framework services.
    // 增加對(duì)EF的支持
    services.AddDbContext<ActDbContext>(options => options.UseSqlServer(Configuration.GetConnectionString("SqlServerConnection")));

    services.AddMvc();
}

上面的SqlServerConnection是我們的數(shù)據(jù)庫(kù)連接字符串,它的配置在project.json文件中:

{
  "Logging": {
    "IncludeScopes": false,
    "LogLevel": {
      "Default": "Debug",
      "System": "Information",
      "Microsoft": "Information"
    }
  },
  "ConnectionStrings": {
    "SqlServerConnection": "Server=.;Database=RdfDb;User ID=sa;Password=sh.123456;"
  }
}

這樣,實(shí)際上我們就完成了,但是我們后面會(huì)用到,我們目前不操作數(shù)據(jù)。

更多資料和資源

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容