entity-framework - Entity Framework 不更新位值

标签 entity-framework entity-framework-6

我的 Entity Framework 有一个奇怪的问题,在我的项目中我使用 EF 6 codefirst 而我的数据库我使用 sqlserver 2012

就像使用位类型 isactive 列的表 iam 一样,它仅表示 0 或 1。默认情况下,我将此列值保留为 1,这表示 true。

当我们想从表中删除一条记录时,我们应该将 1 设为 0,但 Entity Framework 不会更新该值。

有没有人遇到这个奇怪的问题?

代码:

 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 Attribute,这可能是导致问题的原因吗?

琐事上下文:
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; }
}

最佳答案

好吧,我使用 [DatabaseGenerated(DatabaseGeneratedOption.Computed)] 属性作为默认生成值,但这导致我 Entity Framework 无法生成 sql 来更新记录,因此当我删除此属性时,EF 能够生成更新事情,所以我现在可以继续我的工作。但是这种编码是对还是错......任何有经验的人都可以建议我解决这种问题......

问候
博斯

关于entity-framework - Entity Framework 不更新位值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40079187/

相关文章:

c# - Entity Framework 代码优先数据库恢复模型

.net - EF执行SQL时调试断点

c# - 在 Entity Framework 6.1.3 中调用 SaveChanges 时获取实体名称

c# - EntityFramework 无法创建类型为 'Anonymous type' 的常量值。在此上下文中仅支持原始类型或枚举类型

数据库可视化工具

c# - 使用实体将整个数据库导出到 .sql 文件

MySQL for Visual Studio 1.2.7 安装向导提前结束

c# - 无法加载 Entity Framework 提供程序类型?

c# - Linq EF - 如何通过优化查询从数据库中收集特定客户的所有账户、卡、贷款等?

entity-framework - 在 Azure 应用服务上自动运行 EF 迁移