gpt4 book ai didi

c# - Entity Framework - 无法创建类型的常量值

转载 作者:行者123 更新时间:2023-11-30 22:10:21 25 4
gpt4 key购买 nike

我已经阅读了有关此的其他问题,但我似乎无法理解..

我有两个表和它们之间的链接表,如下所示:

组织(组织 ID、名称)
扇区(SectorID, Name)
Organisations_Sectors (OrganisationID, SectorID)

为什么会失败:

public static void CalculateStats(int sectorId)
{
using (var db = new HContext())
{
var sector = db.Sectors.Find(sectorId);
IQueryable<int> orgIds = db.Organisations
.Where(c => c.Sectors.Contains(sector) &&
!l.IsInternational).Select(d => d.OrganisationID);

// the exception occurs on the following line when
// trying to make use of 'orgIds'
var sections = db.Sections.Where(c => orgIds.Contains(c.OrganisationID) &&
c.IsVerified).ToList();
}
}

(希望它不会与任意实体名称混淆。Sector != Section。)

抛出的异常是无法创建“H.Data.Sector”类型的常量值。在此上下文中仅支持原始类型或枚举类型。

最佳答案

您应该将原始类型传递给Contains 方法,因此您不能在那里传递Sector 实体。考虑按扇区 ID 检查:

IQueryable<int> orgIds = db.Organisations
.Where(o => o.Sectors.Any(s => s.SectorId == sectorId) && !o.IsInternational)
.Select(o => o.OrganisationID);

关于c# - Entity Framework - 无法创建类型的常量值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20873395/

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