得到与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之间的兼容性问题? 先进的谢谢:)
答
问题出在你的模型上。 EF需要知道有问题的字段在数据库中设置。
在模型中,添加DatabaseGenerated选项是这样的:
public class myObject
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int ID { get; set; }
...
}
可以与DatabaseGeneratedOption使用的options是已计算(在插入和更新产生),身份(在刀片上产生) ,和无(未生成)。
一旦你这样做,EF知道从保存后从数据库返回值。否则,它假定db没有触及你发送的值。
+0
非常感谢:) :)弗兰克卢克 – Alaa
你应该在这个问题上添加EntityFramework作为标签。 –
谢谢@托马斯 – Alaa