得到与Oracle DATABSE插入数据库在asp.net MVC后

问题描述:

请,我需要帮助找回我已经插入Oracle数据库中的对象的ID(主键)对象ID,许多建议说:得到与Oracle DATABSE插入数据库在asp.net MVC后

context.Entity.add(myObject); 
context.SaveChanges(); 
int x=myObject.ID; 

但这没有奏效。 当我试图在下面的语句x到打印控制器:

return View(x.ToString()); 

(因为我不能打印以另一种方式这个值),我收到值“0”,但是当我打开数据库I找到一个值(不是“0”) 我的oracle数据库有序列和触发器来分配ID给myObject。 我不知道问题出在哪里,在数据库中?或数据库和MVC之间的兼容性问题? 先进的谢谢:)

+0

你应该在这个问题上添加EntityFramework作为标签。 –

+0

谢谢@托马斯 – Alaa

问题出在你的模型上。 EF需要知道有问题的字段在数据库中设置。

在模型中,添加DatabaseGenerated选项是这样的:

public class myObject 
{ 
    [Key] 
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)] 
    public int ID { get; set; } 
    ... 
} 

可以与DatabaseGeneratedOption使用的options已计算(在插入和更新产生),身份(在刀片上产生) ,和(未生成)。

一旦你这样做,EF知道从保存后从数据库返回值。否则,它假定db没有触及你发送的值。

+0

非常感谢:) :)弗兰克卢克 – Alaa