C# 如果属性还具有其他属性,则忽略NotMapped属性

C# 如果属性还具有其他属性,则忽略NotMapped属性,c#,entity-framework-6,devexpress,C#,Entity Framework 6,Devexpress,我的实体类有一个类型为DateTime的属性,具有[NotMapped]和[DateRange]属性[DateRange]属性来自DevExpress 当我尝试创建新迁移时,将忽略[NotMapped]属性,entity framework希望为此属性创建一个新列 如果删除了第二个属性[DateRange],则[NotMapped]正在工作 我试过EF 6.2和6.3,但结果相同 不工作: public class Foo { [Required] public DateTime

我的实体类有一个类型为
DateTime
的属性,具有
[NotMapped]
[DateRange]
属性<代码>[DateRange]属性来自DevExpress

当我尝试创建新迁移时,将忽略
[NotMapped]
属性,entity framework希望为此属性创建一个新列

如果删除了第二个属性
[DateRange]
,则
[NotMapped]
正在工作

我试过EF 6.2和6.3,但结果相同

不工作:

public class Foo
{
    [Required]
    public DateTime DT1Utc { get; set; }

    [NotMapped]
    public DateTime LocalDT1
    {
      get => TimeZoneInfo.ConvertTimeFromUtc(DT1Utc, TimeZoneInfo.Local);
      set => DT1Utc = TimeZoneInfo.ConvertTimeToUtc(value);
    }

    [Required]
    public DateTime DT2Utc { get; set; }

    [NotMapped]
    [DateRange(StartDateEditFieldName = "LocalDT1", MinDayCount = 1)]
    public DateTime LocalDT2
    {
      get => TimeZoneInfo.ConvertTimeFromUtc(DT2Utc, TimeZoneInfo.Local);
      set => DT2Utc = TimeZoneInfo.ConvertTimeToUtc(value);
    }
}
工作:

public class Foo
    {
        [Required]
        public DateTime DT1Utc { get; set; }

        [NotMapped]
        public DateTime LocalDT1
        {
          get => TimeZoneInfo.ConvertTimeFromUtc(DT1Utc, TimeZoneInfo.Local);
          set => DT1Utc = TimeZoneInfo.ConvertTimeToUtc(value);
        }

        [Required]
        public DateTime DT2Utc { get; set; }

        [NotMapped]
        public DateTime LocalDT2
        {
          get => TimeZoneInfo.ConvertTimeFromUtc(DT2Utc, TimeZoneInfo.Local);
          set => DT2Utc = TimeZoneInfo.ConvertTimeToUtc(value);
        }
    }

在这两种情况下使用的指令是否相同?您可能有一个不明确的NotMapping。在这两种情况下使用directived是相同的。您使用的是哪个.net版本?我使用的是.net 4.7.2