EF core code first 修改主键的类型

一般的字段修改类型直接修改,然后add-migration, update-database,没什么问题,但是主键的话,直接修改会报错,如果表的主键

作为另一个表的外键的话,更会报错

约束 'PK_ProcessRatio' 正由表 'MaterialCost' 的外键约束 'FK_MaterialCost_ProcessRatio_ProcessRatioId' 引用。
未能删除约束。请参阅前面的错误信息。

The object 'PK_ProcessRatio' is dependent on column 'ProcessRatioId'.

The object 'FK_MaterialCost_ProcessRatio_ProcessRatioId' is dependent on column 'ProcessRatioId'.

ALTER TABLE ALTER COLUMN ProcessRatioId failed because one or more objects access this column.

这些都是因为有约束的关系,所以我们在add-migration后,需要自行修改up()的那个方法

 protected override void Up(MigrationBuilder migrationBuilder)
        {
           

            migrationBuilder.AlterColumn<string>(
     
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个简单的仓储系统数据库设计,使用 .NET EF Core Code First: ```csharp public class Product { public int Id { get; set; } public string Name { get; set; } public decimal Price { get; set; } public int Quantity { get; set; } public int WarehouseId { get; set; } public Warehouse Warehouse { get; set; } } public class Warehouse { public int Id { get; set; } public string Name { get; set; } public string Address { get; set; } public List<Product> Products { get; set; } } public class Order { public int Id { get; set; } public DateTime OrderDate { get; set; } public int ProductId { get; set; } public Product Product { get; set; } public int Quantity { get; set; } public decimal TotalPrice { get; set; } } public class WarehouseContext : DbContext { public DbSet<Product> Products { get; set; } public DbSet<Warehouse> Warehouses { get; set; } public DbSet<Order> Orders { get; set; } protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) { optionsBuilder.UseSqlServer("Server=(localdb)\\mssqllocaldb;Database=WarehouseDb;Trusted_Connection=True;"); } } ``` 上述代码定义了三个实体类:Product、Warehouse 和 Order,它们分别表示产品、仓库和订单。每个产品都属于一个仓库,一个仓库可以包含多个产品。订单中包含了要购买的产品和数量以及总价。DbContext 包含了三个 DbSet 属性,分别对应这三个实体类的数据库表。在 OnConfiguring 方法中,使用 UseSqlServer 方法指定了数据库连接字符串。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值