如何使用where子句中的相关对象获得实体对象

本文关键字:对象 实体 何使用 where 子句 | 更新日期: 2023-09-27 18:02:25

我有以下表格:Companies -> RelCompanyTax -> CheckList我想要得到RelCompanyTax.CheckList.Month = 5的公司。所以问题是:我怎么能得到所需的公司从DB使用LINQ。

例如,我试图创建这样的查询:

var query = from comps in _context.Companies
        where comps.RelCompanyTax.CheckList.Month = 5
        select comps;
List<Company> resultCompanies = query.ToList();

,但我不能,因为这是错误的语法。如果可能的话,请帮助我用正确的语法写。

有关更多信息,我想说我有客户端<->服务架构,所以实体在服务端,问题不在于双赋值符号,这是比较谓词,是的,你是对的,我在这个主题中有语法错误,因为我没有从我的源代码复制代码。我已经写了comps.RelCompanyTax.CheckList.Month = 5直接到这个主题。我的最终结果是得到所有符合comps.RelCompanyTax.CheckList.Month == 5标准的公司。问题在system . data . objects . datacclasses . entitycollection中。在编译代码后,我复制了下面的错误信息:

错误4无法将lambda表达式转换为'string'类型,因为它不是委托类型CompanyService.cs 20 25 TAService

错误5委托系统。Func'不接受1个参数CompanyService.cs 20 25 TAService

-----------> 最重要的是错误信息 : ---------------->

错误6"system . data . objects . dataclass。"EntityCollection'不包含'CheckList'的定义,也没有扩展方法'CheckList'接受类型为' system . data . objects . datacclasses '的第一个参数。可以找到EntityCollection(您是否缺少using指令或程序集引用?)CompanyService.cs

在获得没有where条款的公司后,我可以通过方式访问CheckList属性List<RelCompanyTax> relCompanyTaxes = currentCompany.RelCompanyTaxes.ToList(); int checkListCount = relCompanyTaxes[0].CheckLists.Count;

但是当我试图在where子句中使用CheckList属性时,出现了4,5和6个错误。

如何使用where子句中的相关对象获得实体对象

我想你只是需要

comps.RelCompanyTax.CheckList.Month == 5

您缺少等号= -单个=是分配,双==是比较(这是您想要的):

var query = from comps in _context.Companies
            where comps.RelCompanyTax.CheckList.Month == 5
            select comps;