zoukankan      html  css  js  c++  java
  • 学习asp.net Identity 心得体会(连接oracle)

    asp.net Identity具体功能暂不在此细说,下面主要介绍几点连接oracle注意的事项,

    1.首先下载连接oracle驱动Oracle.ManagedDataAccess.dll和Oracle.ManagedDataAccess.EntityFramework.dll这个是连接oracle的基础。

    2.在Nuget下安装Microsoft.AspNet.Identity.EntityFramework.dll和Microsoft.AspNet.Identity.Core.dll 和Microsoft.AspNet.Identity.Owin.dll。

    3.更新Microsoft.AspNet.Identity.EntityFramework下的连接数据的modelBuilder.HasDefaultSchema("HB");,Microsoft.AspNet.Identity.EntityFramework默认情况是SQLserver下“dbo”,所以要更改其Schema为你用的oracle的用户名。

    备注,

    
    
     public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
        {
            public ApplicationDbContext()
                : base("DefaultConnection", throwIfV1Schema: false)
            {
            }
    
            public static ApplicationDbContext Create()
            {
                return new ApplicationDbContext();
            }
        }
    

      前面查资料看到有的文章下把

    ApplicationDbContext.cs下改成
     public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
        {
            public ApplicationDbContext()
                : base("DefaultConnection", throwIfV1Schema: false)
            {
            }
    
            public static ApplicationDbContext Create()
            {
                return new ApplicationDbContext();
            }
    
            protected override void OnModelCreating(DbModelBuilder modelBuilder)
            {
                modelBuilder.HasDefaultSchema("HB");
                modelBuilder.Entity<IdentityUserLogin>().HasKey<string>(l => l.UserId);
                // modelBuilder.Entity<IdentityRole>().HasKey<string>(r => r.Id);
                modelBuilder.Entity<IdentityUserRole>().HasKey(r => new { r.RoleId, r.UserId });
            }
        }
    

      改成这样后会报错

    ORA-00932: 数据类型不一致: 应为 -, 但却获得 NCLOB

    这个

    OnModelCreating会继承DbContext下面的方法。没有调用Microsoft.AspNet.Identity.EntityFramework里的,
    所以我解决的办法是把Microsoft.AspNet.Identity.EntityFramework修改,
    修改之后在
    OnModelCreating下加这一行。
    modelBuilder.HasDefaultSchema("HB");然后就可以操作oracle了。
    如有更好asp.net Identity 连接oracle 办法,请告知,谢谢。


  • 相关阅读:
    注册验证
    翻页加输入框
    php面向对象
    封装数据库
    浅谈BFC和haslayout
    总结JS面向对象
    总结(JS)
    转载6
    总结(5.30)
    总结(5.29)
  • 原文地址:https://www.cnblogs.com/ps903942560/p/5167205.html
Copyright © 2011-2022 走看看