首页 新闻 搜索 专区 学院

EF Code first 一直报 已经在该表 怎么解决呢?

0
悬赏园豆:5 [待解决问题]

public class EntityContext : DbContext
{
public EntityContext(): base(ConfigurationManager.AppSettings["db_member"])
{
//程序启动时自动升级数据库,通过应用所有挂起的迁移
Database.SetInitializer<EntityContext>(
new MigrateDatabaseToLatestVersion<EntityContext, MigrationsConfiguration>());
}

/// <summary>
/// 虚拟充值产品
/// </summary>
public DbSet<VChargeProduct> VChargeProducts { get; set; }
/// <summary>
/// 虚拟充值产品组
/// </summary>
public DbSet<VChargeProductGroup> VChargeProductGroups { get; set; }
/// <summary>
/// 虚拟充值组渠道商
/// </summary>
public DbSet<VChargeGroupMac> VChargeGroupMacs { get; set; }

protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
#region 金额长度及小数点保留位数
modelBuilder.Entity<VChargeProduct>().Property(p => p.Price).HasPrecision(10, 3);
modelBuilder.Entity<VChargeProduct>().Property(p => p.CentCommProfit).HasPrecision(10, 3);
modelBuilder.Entity<VChargeProduct>().Property(p => p.UserProfit).HasPrecision(10, 3);

modelBuilder.Entity<VChargeProduct>().Property(t => t.CentCommType).IsUnicode(false);
modelBuilder.Entity<VChargeProduct>().Property(t => t.UserProfitType).IsUnicode(false);
modelBuilder.Entity<VChargeProductGroup>().Property(t => t.Title).IsUnicode(false);

#endregion
base.OnModelCreating(modelBuilder);
}
}


internal sealed class MigrationsConfiguration : DbMigrationsConfiguration<EntityContext>
{
public MigrationsConfiguration()
{
AutomaticMigrationsEnabled = true; //任何Model Class的修改將會直接更新DB
AutomaticMigrationDataLossAllowed = true;
}

protected override void Seed(EntityContext context)
{
#region 初始化测试数据
context.VChargeProducts.AddOrUpdate(new VChargeProduct
{
Id = XS.Utils.SequNo.NewId,
CId = 1,
GroupId = 1,
ArsId = 3000, //3000移动
AreaId = 8633, //浙江
Denom = 100, //面额
Price = 99.80M,
CentCommProfit = 100,
UserProfit = 100,
CentCommType = "AbleBalance",
UserProfitType = "AbleBalance"
});

context.VChargeGroupMacs.AddOrUpdate(new VChargeGroupMac
{
Id = XS.Utils.SequNo.NewId,
GroupId = 1,
MacId = 1
});

#endregion
}
}

 

自定义继承与DbContext数据上下文 一直未能解决。。。

小夜1的主页 小夜1 | 初学一级 | 园豆:193
提问于:2014-08-08 08:59
< >
分享
所有回答(1)
0

搞不明白你的问题。

 

一般来说,使用EF的CODE FIRST,不需要搞DbMigrationsConfiguration,有你的代码足够了。

DbMigrationsConfiguration是用来移植的。所谓移植,主要应用于已经发布的项目系统,需要对数据库架构进行调整的时候操作。

 

数据库移植是不会在运行时执行的,而是通过程序管理控制台来完成。

看了你的移植代码~~~,我一般都不写你这么复杂的,启动移植后,使用add功能添加新的移植脚本(必要时手工编辑),然后使用update命令执行移植或回滚。

519740105 | 园豆:5810 (大侠五级) | 2014-08-22 11:17
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册