我与实体框架一个奇怪的问题,在使用EF 6 codefirst我的项目IM和使用的isactive柱使用SQLSERVER 2012实体框架不更新位值
与表IAM我的数据库IM类型位,它只代表0或1。并默认我保持这个列值为1,这代表真实。
当我们想从表中删除一条记录时,我们应该使1到0,但实体框架不更新值。
是有这个奇怪问题的任何一个解决方案吗?
代码:
using (var context = new TriviaContext())
{
var booking = context.Booking.FirstOrDefault(b => b.BookingId == id);
context.Entry(booking).Property(u => u.IsActive).IsModified=true;
booking.IsActive = false;
context.SaveChanges();
return Ok(booking);
}
订房型号:
class Booking
{
public int BookingId { get; set; }
public string Name{get;set;}
[DatabaseGenerated(DatabaseGeneratedOption.Computed)]
public bool? IsActive { get; set; }
}
编辑:其实我已经包含DatabaseGenerated属性在我的模型类,可能是这个原因造成的问题?
TriviaContext:
public class TriviaContext : DbContext
{
public TriviaContext()
: base("name=DefaultConnection")
{
}
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
}
public DbSet<Bookings> Booking { get; set; }
}
你能展示一些代码,表结构? – Danh
你能显示代码吗? – Sampath
以及EF没有生成更新代码... – user3768179