Это буквально сводит меня с ума.Я создал таблицу, как вы можете видеть из изображения ниже:
И это свободная конфигурация для сущности User:
//this is the User entity model class
public class User
{
public long Id { get; set; }
public string EmailAddress { get; set; }
public string HashedPassword { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public int IsAdmin { get; set; }
}
public class UserEntityModelBuilder : IEntityModelBuilder
{
public void Build(DbModelBuilder modelBuilder)
{
var config = modelBuilder.Entity<User>();
config.Property(e => e.Id).HasColumnName("ID");
config.Property(e => e.EmailAddress).HasColumnName("EMAIL");
config.Property(e => e.HashedPassword).HasColumnName("PASSWORD");
config.Property(e => e.FirstName).HasColumnName("NOME");
config.Property(e => e.LastName).HasColumnName("COGNOME");
config.Property(e => e.IsAdmin).HasColumnName("ADMIN");
config.ToTable("UTENTIEROGAZIONE").HasKey(e => e.Id);
}
}
Теперь я выполняю очень простую инструкцию LINQ только для проверки входа в систему и выдает это странное сообщение об исключении:
факт, что я использую только поля VARCHAR2, я не могу понять, что, черт возьми, происходит ... какие-либо подсказки?
EDIT (добавлена инициализация DbContext):
public BarcodePrinterDbContext(IConnectionStringProvider connectionStringProvider,
IEnumerable<IEntityModelBuilder> entityModelBuilders)
: base(connectionStringProvider.GetConnectionString())
{
_entityModelBuilders = entityModelBuilders ??
throw new ArgumentNullException(nameof(entityModelBuilders));
Database.SetInitializer(
new NullDatabaseInitializer<BarcodePrinterDbContext>());
}
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
//setting the schema for Oracle DB
SchemaSetup.SetupSchema(modelBuilder);
//registering all entities fluent configurations on the model builder
foreach (var entityModelBuilder in _entityModelBuilders)
entityModelBuilder.Build(modelBuilder);
/*
* I googled out something on wrong mappings on string types,
* so I tried to set all string fields to a maximum of 2000
* characters, unfortunately with no success.
*/
modelBuilder
.Properties()
.Where(p => p.PropertyType == typeof(string) &&
p.GetCustomAttributes(typeof(MaxLengthAttribute), false).Length == 0)
.Configure(p => p.HasMaxLength(2000));
}