首先,我们正在使用.NET 4.5,因此这不应该成为问题。

我有六个具有枚举属性的类,但是,当我创建迁移时,由于某种原因,它会忽略其中两个类的枚举属性,而不是其他类!

例如,此类:

public class CreditCardForeignUsage : EntityBase
{
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public override int Id { get; set; }

    public virtual CreditCard CreditCard { get; set; }
    public int CreditCardId { get; set; }

    public bool? Active { get; set; }
    public ForeignUsageNetwork? Network { get; set; }
    public ForeignUsageLocation? Location { get; set; }
    public decimal? Percent { get; set; }
    public bool? ManuallyAdded { get; set; }
}

生成以下迁移代码(一切正常):

            CreateTable(
            "dbo.CreditCardForeignUsage",
            c => new
                {
                    Id = c.Int(nullable: false, identity: true),
                    CreditCardId = c.Int(nullable: false),
                    Active = c.Boolean(),
                    Network = c.Int(),
                    Location = c.Int(),
                    Percent = c.Decimal(precision: 18, scale: 2),
                    ManuallyAdded = c.Boolean(),
                    Timestamp = c.Binary(nullable: false, fixedLength: true, timestamp: true, storeType: "rowversion"),
                    Created = c.DateTime(nullable: false),
                })
            .PrimaryKey(t => t.Id)
            .ForeignKey("dbo.CreditCard", t => t.CreditCardId)
            .Index(t => t.CreditCardId);

但是这个类:

public class CreditCardRate : EntityBase
{
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public override int Id { get; set; }

    public virtual CreditCard CreditCard { get; set; }
    public int CreditCardId { get; set; }

    public bool? Active { get; set; }
    public RateType? RateType { get; set; }
    public int? MinBalance { get; set; }
    public int? MaxBalance { get; set; }
    public int? RatePeriod { get; set; }
    public DateTime? RateDate { get; set; }
    public decimal? MonthlyRate { get; set; }
    public YearlyRateType? YearlyRateType { get; set; }
    public decimal? YearlyRate { get; set; }
    public bool? ManuallyAdded { get; set; }
}

生成以下内容(RateType和YearlyRateType丢失):

            CreateTable(
            "dbo.CreditCardRate",
            c => new
                {
                    Id = c.Int(nullable: false, identity: true),
                    CreditCardId = c.Int(nullable: false),
                    Active = c.Boolean(),
                    MinBalance = c.Int(),
                    MaxBalance = c.Int(),
                    RatePeriod = c.Int(),
                    RateDate = c.DateTime(),
                    MonthlyRate = c.Decimal(precision: 18, scale: 2),
                    YearlyRate = c.Decimal(precision: 18, scale: 2),
                    ManuallyAdded = c.Boolean(),
                    Timestamp = c.Binary(nullable: false, fixedLength: true, timestamp: true, storeType: "rowversion"),
                    Created = c.DateTime(nullable: false),
                })
            .PrimaryKey(t => t.Id)
            .ForeignKey("dbo.CreditCard", t => t.CreditCardId)
            .Index(t => t.CreditCardId);

有任何想法吗? 这是某种错误吗?

编辑

枚举声明如下:

namespace CE.Core.Portal.DTOs.CreditCards
{
    public enum RateType
    {
        StandardDirectDebit = 1,
        StandardPurchases = 2,
        StandardCash = 3,
        StandardOther = 4,
        IntroPurchases = 5,
        BalanceTransfer = 6,
    }
}

  ask by Tom translate from so

本文未有回复,本站智能推荐:

1回复

表列的实体框架枚举属性(代码优先方法)

在ASP.NET中,我正在以代码优先的方式使用Entity Framework,并且我希望基于我的模型来生成DB表。 属性之一是Enum值,并且在生成的表中未显示为列。 所以这是我的枚举: 这是我的模型: 因此,使用代码优先方法,我已经生成了具有以下列的表: 之后
2回复

枚举可用的实体框架代码优先迁移

是否可以通过编程枚举特定上下文/程序集的可用代码优先迁移(EF 6+)? 具体来说,我想查看一个特定的程序集/上下文,并列出可用的迁移,并按应用顺序对它们进行排序。 似乎System.Data.Entity.Migrations.Infrastructure.MigrationAss
1回复

实体框架5-映射枚举-'/'应用程序中的服务器错误。 LINQ to Entities不支持指定的类型成员'xxx'

我遇到了在实体框架5(支持枚举)中没有映射的枚举的问题。 当我调用results.Where(r => r.Category = LogEntry.LogCategory.ERROR) ,结果是一个IQueryable,我得到LINQ to Entities不支持指定类型成员LogC
1回复

实体框架迁移:为什么字符串属性会忽略IsRequired”?

这是我的POCO 这是TypeConfiguration .... 我的问题是……为什么,当将其作为迁移添加时,迁移代码没有将“名称”属性设置为“不为空”吗? 它还会忽略MaxLength设置。 为什么是这样?
2回复

实体框架迁移

大家好,我为EntityFramework的迁移而苦苦挣扎,目前,我已经启用了自动迁移。 我的软件是wpf- mvvm-ef代码优先SQL Server 但是我想知道如何处理特殊情况。 我将软件安装在所有四台机器上,读取服务器上的数据库。 现在,您正在发布我的应用程序的更
1回复

如何使用实体框架触发迁移

我想通过代码触发数据库迁移到最新版本。 我已经配置了迁移,并且可以正常工作,但是我可以使它们迁移的唯一方法是查询我认为不需要的数据库。 我相信我只是错过了一些文档来触发迁移,但是如果有人可以向我指出正确的方向,将不胜感激。
3回复

实体框架,自动应用迁移

我正在使用带有AutomaticMigrationsEnabled = true Entity Framework Code First方法: 项目的第一次运行将按预期方式创建数据库和表。 通过添加或删除字段更改模型后,我运行了Add-Migration 。 生成了Migration
1回复

管理实体框架迁移

我正在使用Entity Framework开发多租户Web应用程序,该项目正在积极开发中,此过程可能需要一两年的时间。 我使用Migrations来管理数据库更改,添加新表和子系统,管理数据库triggers ,播种默认数据等。在添加新租户时也将使用它们,每个客户可能有几个不同的数据库,并且该
2回复

实体框架5自动代码迁移

在我当前的Web项目中,我正在尝试设置代码迁移。 我在我的MVC4项目中设置了我的db初始化器,如下所示 我可以更改我的代码第一个模型,这会在我启动网站时将数据库更新为最新的自动迁移。 但是我试图通过控制台Add-Migration FirstMigration显式迁移,因此我可
11回复

重置实体框架迁移

我已经对迁移进行了处理,在初始迁移中使用了IgnoreChanges ,但是现在我想删除所有迁移,并从所有逻辑开始进行初始迁移。 当我删除文件夹中的迁移并尝试执行“ Add-Migration它不会生成完整的文件(该文件为空-因为自上次迁移以来,我没有进行任何更改,但是现在删除了该迁移)。