學習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 辦法,請告知,謝謝。



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM