【问题标题】:How can I limit the values allowed with Entity Framework?如何限制实体框架允许的值?
【发布时间】:2011-05-01 21:24:38
【问题描述】:

我正在使用实体框架。

我的实体有一个字符串类型的 DayOfWeek 属性。

如何将其值限制为仅“星期日”、“星期一”、“星期二”等?

【问题讨论】:

    标签: .net entity-framework


    【解决方案1】:

    没有简单的方法。如果是 ObjectContext API,您可以在 ObjectContext 实现中覆盖 SaveChanges

    public override int SaveChanges(SaveOptions options)
    {
        var entities = ObjectStateManager.GetObjectStateEntries(EntityState.Added | EntityState.Modified)
                                         .Select(e => e.Entity)
                                         .OfType<YourEntityType>();
    
        foreach (var entity in entities)
        {
            // Here you can validate your property - entity is of your type
        }
    
        return base.SaveChanges(options);
    }
    

    问题在于 EF 不支持自定义标量类型,并且在将值替换为 int 的情况下也不支持枚举。

    另一种方法是通过您在业务逻辑中的自定义验证来强制执行此操作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-06-25
      • 1970-01-01
      • 1970-01-01
      • 2022-01-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多