【发布时间】:2015-06-10 16:21:57
【问题描述】:
请问,有人知道任何将 MVC5 ASP.NET 身份与 Oracle DB 11g 一起使用的示例吗?
我用下一个配置更改了所有 web.config:
<section name="oracle.manageddataaccess.client" type="OracleInternal.Common.ODPMSectionHandler, Oracle.ManagedDataAccess, Version=4.121.2.0, Culture=neutral, PublicKeyToken=89b483f429c47342" />
<add name="OracleDbContext" providerName="Oracle.ManagedDataAccess.Client" connectionString="User Id=USERADM;Password=PASSWORD;Data Source=oracle" />
<assemblyIdentity name="Oracle.ManagedDataAccess" publicKeyToken="89b483f429c47342" culture="neutral" />
<defaultConnectionFactory type="Oracle.ManagedDataAccess.Client.OracleClientFactory, Oracle.ManagedDataAccess" />
<providers>
<provider invariantName="Oracle.ManagedDataAccess.Client" type="Oracle.ManagedDataAccess.EntityFramework.EFOracleProviderServices, Oracle.ManagedDataAccess.EntityFramework, Version=6.121.2.0, Culture=neutral, PublicKeyToken=89b483f429c47342" />
</providers>
<DbProviderFactories>
<remove invariant="Oracle.ManagedDataAccess.Client" />
<add name="ODP.NET, Managed Driver" invariant="Oracle.ManagedDataAccess.Client" description="Oracle Data Provider for .NET, Managed Driver" type="Oracle.ManagedDataAccess.Client.OracleClientFactory, Oracle.ManagedDataAccess, Version=4.121.2.0, Culture=neutral, PublicKeyToken=89b483f429c47342" />
</DbProviderFactories>
<dataSource alias="oracle" descriptor="(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=HOST)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=BD))) " />
并像这样更改 IdentityModel 文件:
using Microsoft.AspNet.Identity.EntityFramework;
using System.Data.Entity;
namespace OracleTest1.Models
{
// You can add profile data for the user by adding more properties to your ApplicationUser class, please visit http://go.microsoft.com/fwlink/?LinkID=317594 to learn more.
public class ApplicationUser : IdentityUser
{
}
public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
{
public ApplicationDbContext()
: base("OracleDbContext")
{
}
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.HasDefaultSchema("USERADM");
}
}
}
当尝试测试登录时,我收到下一个错误:
Error de servidor en la aplicación '/'.
Se han detectado uno o varios errores de validación durante la generación del modelo:
OracleTest1.Models.IdentityUserLogin: : EntityType 'IdentityUserLogin' no tiene ninguna clave definida. Defina la clave para este EntityType.
OracleTest1.Models.IdentityUserRole: : EntityType 'IdentityUserRole' no tiene ninguna clave definida. Defina la clave para este EntityType.
IdentityUserLogins: EntityType: EntitySet 'IdentityUserLogins' se basa en el tipo 'IdentityUserLogin' que no tiene claves definidas.
IdentityUserRoles: EntityType: EntitySet 'IdentityUserRoles' se basa en el tipo 'IdentityUserRole' que no tiene claves definidas.
Descripción: Excepción no controlada al ejecutar la solicitud Web actual. Revise el seguimiento de la pila para obtener más información acerca del error y dónde se originó en el código.
Detalles de la excepción: System.Data.Entity.ModelConfiguration.ModelValidationException: Se han detectado uno o varios errores de validación durante la generación del modelo:
OracleTest1.Models.IdentityUserLogin: : EntityType 'IdentityUserLogin' no tiene ninguna clave definida. Defina la clave para este EntityType.
OracleTest1.Models.IdentityUserRole: : EntityType 'IdentityUserRole' no tiene ninguna clave definida. Defina la clave para este EntityType.
IdentityUserLogins: EntityType: EntitySet 'IdentityUserLogins' se basa en el tipo 'IdentityUserLogin' que no tiene claves definidas.
IdentityUserRoles: EntityType: EntitySet 'IdentityUserRoles' se basa en el tipo 'IdentityUserRole' que no tiene claves definidas.
非常感谢
【问题讨论】:
标签: c# asp.net asp.net-mvc oracle asp.net-mvc-5