J'ai un référentiel générique où j'ai une méthode pour enregistrer des données dans la base de données. Sachant que je change un ancien système, je suis confronté à cette situation:Insérer des données dans la base de données en utilisant Entity Framework
Lorsque je dois enregistrer une zone, par exemple, j'ai besoin d'insérer l'identifiant du champ en fonction de la dernière valeur insérée à l'intérieur par la base de données , mais pour une raison quelconque lorsque j'essaie de persister, une erreur indiquant que je ne peux pas insérer de valeurs nulles dans l'ID de la table apparaît.
J'ai essayé de le faire:
areaRepository.Save(new Area{AreaCode = 999, AreaName = "teste"});
areaRepository.SaveAll();
La méthode de sauvegarde est:
public void Save(T obj)
{
ctx.Set<T>().Add(obj);
}
Et la sauver toute méthode est
public void SaveAll()
{
ctx.SaveChanges();
}
Après l'exécution de la méthode SaveAll l'erreur augmente .
{ "ORA-01400: est pas possible d'insérer null (\" CELG \ EPW_AREAS \ AREA_CODE de \ » \. "" \. "") \ NORA-06512: à la ligne 4" }
Sachant que j'essaie de forcer la valeur AREA_CODE, pourquoi framework d'entité ne l'ajoute pas et considère la valeur comme nulle?
Existe-t-il un moyen de le forcer?
Est-ce que quelqu'un peut vous aider?
Merci dans le conseil.
Mise à jour:
classe Entité:
[Table("EPW_AREAS", Schema="CELG")]
public class Area
{
[Key]
[Column("AREA_CODE")]
public int AreCode { get; set; }
[Column("AREA_NAME")]
public string AreName { get; set; }
}
Mise à jour 2
Contexte
public WsContext(string sConnectionString)
: base(sConnectionString)
{
}
public DbSet<Area> Areas { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
}
Mise à jour 3
CREATE TABLE CELG.EPW_AREAS
(
AREA_CODE NUMBER NOT NULL,
AREA_NAME VARCHAR2(30 BYTE)
)
TABLESPACE TBS_CELG_DATA
PCTUSED 0
PCTFREE 10
INITRANS 1
MAXTRANS 255
STORAGE (
INITIAL 64K
NEXT 1M
MINEXTENTS 1
MAXEXTENTS UNLIMITED
PCTINCREASE 0
BUFFER_POOL DEFAULT
)
LOGGING
NOCOMPRESS
NOCACHE
NOPARALLEL
MONITORING;
Le problème le plus probable est que votre mappage est incorrect. Si vous voulez plus d'aide, vous devrez fournir le code de mappage. – Igor
Pouvez-vous poster votre classe de contexte? – Isma
êtes-vous sûr que la colonne accepte les valeurs nulles et ce n'est pas une colonne "non nulle"? –