代码之家  ›  专栏  ›  技术社区  ›  Trent

EF添加迁移未检测到泛型

  •  0
  • Trent  · 技术社区  · 8 年前

    我有以下课程:

    public class PricingRuleNumberRange
    {
        public decimal? FromValue { get; private set; }
        public decimal? ToValue { get; private set; }
    
        protected PricingRuleNumberRange() {}
    
        public PricingRuleNumberRange(decimal? fromValue, decimal? toValue)
        {
            FromValue = fromValue;
            ToValue = toValue;
        }
    
        ...
    }
    

    以及使用所述类别的模型;

    public class PricingRule
    {
        public PricingRuleNumberRange LVR { get; private set; }
    
        protected PricingRule() { }
    
        public PricingRule(...)
        {
            ...
        }
    
        public void UpdateDetails(PricingRuleNumberRange lvr)
        {
            LVR = lvr;
        }
    }
    

    我可以添加新的 PricingRuleNumberRange 属性到 PricingRule 然后打电话 Add-Migration ,它将无问题地检测和脚手架变更。但是,我现在需要添加另一个 价格范围 只有一个 int ,不是 decimal 。我认为转换 价格范围 对于一般类是可以接受的,但是 添加迁移 现在放下 LVR 属性/列。

    这是新的代码;

    public class PricingRuleNumberRange<T> where T : struct, IComparable<T>
    {
        public T? FromValue { get; private set; }
        public T? ToValue { get; private set; }
    
        protected PricingRuleNumberRange() {}
    
        public PricingRuleNumberRange(T? fromValue, T? toValue)
        {
            FromValue = fromValue;
            ToValue = toValue;
        }
    
        ...
    }
    
    public class PricingRule
    {
        public PricingRuleNumberRange<decimal> LVR { get; private set; }
        public PricingRuleNumberRange<int> NewCol { get; private set; }
    
        protected PricingRule() { }
    
        public PricingRule(...)
        {
            ...
        }
    
        public void UpdateDetails(PricingRuleNumberRange<decimal> lvr)
        {
            LVR = lvr;
        }
    }
    

    因为我在说明 int / 十进制的 在财产申报表中,我以为它会继续提货,但显然不会。我想我可能需要在 DbContext.OnModelCreating() 方法或可能向某些属性添加一些属性以使其正常工作?

    0 回复  |  直到 8 年前
    推荐文章