gpt4 book ai didi

mysql - 字段列表中带有mysql未知列的 Entity Framework 核心

转载 作者:行者123 更新时间:2023-11-29 01:35:39 25 4
gpt4 key购买 nike

我有一个用户表和一个产品表以及表 UsersProducts 中它们之间的多对多关系。

每个用户都可以请求获得更多的产品,我决定在给用户产品的时候保存日期

public class UserProduct
{
public int UserId { get; set; }
public User User { get; set; }
public Product Product { get; set; }
public int ProductId { get; set; }
public DateTime DateAssigned { get; set; }
}

protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<UserProduct>()
.HasKey(bc => new { UserId = bc.UserId, ProductId = bc.ProductId });

modelBuilder.Entity<UserProduct>()
.HasOne(bc => bc.User)
.WithMany(b => b.Products)
.HasForeignKey(bc => bc.UserId);

modelBuilder.Entity<UserProduct>()
.HasOne(bc => bc.Product)
.WithMany(c => c.Owners)
.HasForeignKey(bc => bc.ProductId);

base.OnModelCreating(modelBuilder);
}

当我尝试访问 (UsersProducts.Where(...)) 时,我得到关于 DateAssigned 列的“字段列表中的未知列”。

这是迁移中生成的代码EF

    protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.AddColumn<DateTime>(
name: "DateAssigned",
table: "UsersProducts",
type: "datetime(6)",
nullable: false,
defaultValue: new DateTime(1, 1, 1, 0, 0, 0, 0, DateTimeKind.Unspecified));
}

protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropColumn(
name: "DateAssigned",
table: "UsersProducts");
}

该列似乎存在于表中,那么为什么会发生这种情况?

最佳答案

尝试在映射中添加它

.Property(t => t.DateAssigned).HasColumnName("DateAssigned")

关于mysql - 字段列表中带有mysql未知列的 Entity Framework 核心,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47330796/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com