gpt4 book ai didi

c# - 字段列表中的未知列 - MySQL 更改后

转载 作者:行者123 更新时间:2023-11-29 21:27:05 24 4
gpt4 key购买 nike

我有一个查询,它在进行几次连接后提取一些数据,当应用程序使用 SQL Server 时,这工作得很好。然而,在转移到 MySQL 后,我遇到了一些问题。

例如,我不断收到错误“未知列 Extent.Group_ClientID”。我已经确定了发生此错误的行,但我不明白为什么。

实体:

[Table("tblsupplier")]
public partial class Supplier
{
[Key][Column(Order = 0)]
public int ClientID { get; set; }

[Key][Column(Order = 1)]
public int SupplierID { get; set; }

[StringLength(50)]
public string AccountNo { get; set; }

[StringLength(100)]
public string SupplierName { get; set; }

public string DisplayName {
get {
return this.SupplierName + " (" + this.AccountNo + ")";
}
}

public virtual Client tblClient { get; set; }
}

查询:

 public IQueryable<Supplier> GetAllSuppliersByClientWithClaims(int ClientID, List<int> WrittenOffIDs) {
return (from s in alliance.Suppliers
where s.ClientID == ClientID
join h in alliance.Headers
on new { a = s.ClientID, b = s.SupplierID }
equals new { a = h.ClientID, b = h.SupplierID }

join d in alliance.Details
on new { h.ClientID, h.ClaimID }
equals new { d.ClientID, d.ClaimID }

join r in alliance.Reviews
on new { h.ClientID, h.ReviewID }
equals new { r.ClientID, r.ReviewID }
where r.ReviewPeriodID != 0
where d.SplitLine == false
where !WrittenOffIDs.Contains((int)d.WrittenOffID)



select s).Distinct().OrderBy(r => r.SupplierName);
}

方法:

public string GetSupplierAutoComplete(int ClientID) {
DashboardViewModel model = new DashboardViewModel();
GeneralMethods GeneralHelpers = new GeneralMethods(reviewPeriodRepo, supplierGroupRepo, detailRepo);

model.Suppliers = supplierRepo.GetAllSuppliersByClientWithClaims(ClientID, GeneralHelpers.GetWrittenOffCodes(ClientID));

//Fails here
return JsonConvert.SerializeObject(model.Suppliers.Select(r => r.DisplayName), Formatting.Indented);
}

但是,我做了一些尝试,发现查询中的其中一个位置导致了此问题。 其中 d.SplitLine == false。现在数据库中的SplitLine是一个Tinyint。正如建议的那样,因为这是 MySQL 的 bool 类型。现在,如果我拉出单个“SplitLine”,它将根据 0 或 1 返回 true 或 false。而如果我在 where 语句中使用它,则会失败。为什么会这样?

更新:

这似乎只在我枚举列表时才会发生

最佳答案

找到答案了!我不完全确定为什么会发生错误!无论如何..

我有两个实体:

标题和组。

我的 header 实体中有一个外键,它创建与组的链接。它说一个 header 可以有一组。经过我的审查,这是不正确的。一个 header 可以有多个组。所以我改变了外键:

public virtual Group Group { get; set; }

致:

public ICollection<Group> Groups {get; set; }

这然后就起作用了。但是,我没有引用组,所以我不确定为什么会引发错误。如果有人知道,请在评论中告诉我。

关于c# - 字段列表中的未知列 - MySQL 更改后,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35457487/

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