gpt4 book ai didi

c# - 从 EF.core 2.2 迁移到 EF.core 3.1 会破坏生成的 sql,将 1 添加到某些列名

转载 作者:行者123 更新时间:2023-12-03 23:08:57 25 4
gpt4 key购买 nike

从 .net core 2.2 迁移到 3.1 已经破坏了几个 EF 调用:

生成的 sql 引入了附加了“1”的字段。任何原因?

fail: Microsoft.EntityFrameworkCore.Database.Command[20102]
Failed executing DbCommand (257ms) [Parameters=[], CommandType='Text', CommandTimeout='30']
SELECT [d].[deployment_id], [d].[days_off], [d].[days_on], [d].[dt_end], [d].[dt_start], [d].[guard_id], [d].[guard_id1], [d].[last_modified], [d].[last_modified_by], [d].[site_id], [d].[site_id1], [g].[guard_id], [g].[address], [g].[bank], [g].[dob], [g].[dt_joined], [g].[dt_trained], [g].[has_picture], [g].[height], [g].[last_modified], [g].[last_modified_by], [g].[location_id], [g].[marital_status], [g].[mobiles], [g].[name], [g].[nuban], [g].[ref_no], [g].[religion], [g].[salary], [g].[sex], [g].[state_origin], [g].[status], [s].[site_id], [s].[address], [s].[client_id], [s].[client_id1], [s].[last_modified], [s].[last_modified_by], [s].[name], [s].[state]
FROM [Deployments] AS [d]
LEFT JOIN [Guards] AS [g] ON [d].[guard_id1] = [g].[guard_id]
LEFT JOIN [Sites] AS [s] ON [d].[site_id1] = [s].[site_id]
ORDER BY [g].[name]
dbug: Microsoft.EntityFrameworkCore.Database.Connection[20002]
Closing connection to database 'xxxx' on server 'xxxxxx'.
dbug: Microsoft.EntityFrameworkCore.Database.Connection[20003]
Closed connection to database 'xxxx' on server 'xxxxxx'.
fail: Microsoft.EntityFrameworkCore.Query[10100]
An exception occurred while iterating over the results of a query for context type 'XXX.Api.RSGContext'.
Microsoft.Data.SqlClient.SqlException (0x80131904):

Invalid column name 'guard_id1'.
Invalid column name 'site_id1'.
Invalid column name 'guard_id1'.
Invalid column name 'site_id1'.
Invalid column name 'client_id1'.

正在使用的类:
public class Site
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public Int32 site_id { get; set; }

public String name { get; set; }
public Int32 client_id { get; set; }
public String address { get; set; }
public String state { get; set; }

public virtual Client Client { get; set; }

public List<Deployment> Deployments { get; set; }
public List<Contract> Contracts { get; set; }
public List<Timesheet> Timesheets { get; set; }

public DateTime? last_modified { get; set; }
public int? last_modified_by { get; set; }
}

public class Deployment
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public Int32 deployment_id { get; set; }

public Int32 guard_id { get; set; }
public Int32 site_id { get; set; }
public DateTime? dt_start { get; set; }
public DateTime? dt_end { get; set; }
public int? days_on { get; set; }
public int? days_off { get; set; }

public virtual Guard Guard { get; set; }
public virtual Site Site { get; set; }

public DateTime? last_modified { get; set; }
public int? last_modified_by { get; set; }
}

public class Guard
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public Int32 guard_id { get; set; }

public String name { get; set; }
public String mobiles { get; set; }
public String address { get; set; }
public DateTime? dob { get; set; }
public String sex { get; set; }
public Int32? height { get; set; }
public String ref_no { get; set; }
public Int32? location_id { get; set; }
public DateTime? dt_joined { get; set; }
public DateTime? dt_trained { get; set; }
public String status { get; set; }
public Decimal? salary { get; set; }
public String state_origin { get; set; }
public String religion { get; set; }
public String marital_status { get; set; }
public bool has_picture { get; set; }
public String bank { get; set; }
public String nuban { get; set; }

public List<Deployment> Deployments { get; set; }

public List<Leave> Leave { get; set; }
public List<Timesheet> Timesheets { get; set; }

public DateTime? last_modified { get; set; }

public int? last_modified_by { get; set; }

public List<GuardGuarantor> GuardGuarantors { get; set; }
}

最佳答案

终于得到这个工作。

缺少的是正确的 modelBuilder配置

  modelBuilder.Entity<Deployment>().HasOne<Guard>(x => x.Guard).WithMany(x => x.Deployments).HasForeignKey(x => x.guard_id);
modelBuilder.Entity<Deployment>().HasOne<Site>(x => x.Site).WithMany(x => x.Deployments).HasForeignKey(x => x.site_id);

关于c# - 从 EF.core 2.2 迁移到 EF.core 3.1 会破坏生成的 sql,将 1 添加到某些列名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60073762/

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