学习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 办法,请告知,谢谢。


转载于:https://www.cnblogs.com/ps903942560/p/5167205.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值