Entity framework EF7中带子查询的LINQ查询不返回数据
我使用的是MVC6EF7,代码如下。当我在调试模式下运行时,LINQ查询会给出错误评估timedout,如果我简单地运行它,查询不会在屏幕上显示任何数据。 我尝试在没有子查询的情况下返回完整的数据,我还尝试将子查询作为主查询,这也会返回数据。但一旦我将其作为子查询,它就不会返回数据。我错过了什么?EF7不支持Contains吗?还有别的办法吗?我不希望有一个带有内部查询的变量,然后使用它,我想要一个组合查询Entity framework EF7中带子查询的LINQ查询不返回数据,entity-framework,linq,Entity Framework,Linq,我使用的是MVC6EF7,代码如下。当我在调试模式下运行时,LINQ查询会给出错误评估timedout,如果我简单地运行它,查询不会在屏幕上显示任何数据。 我尝试在没有子查询的情况下返回完整的数据,我还尝试将子查询作为主查询,这也会返回数据。但一旦我将其作为子查询,它就不会返回数据。我错过了什么?EF7不支持Contains吗?还有别的办法吗?我不希望有一个带有内部查询的变量,然后使用它,我想要一个组合查询 using System.Collections.Generic; using Syst
using System.Collections.Generic;
using System.Linq;
using System.Linq.Expressions;
using System.Data;
using Microsoft.AspNet.Http;
using Microsoft.AspNet.Mvc;
using Microsoft.Data.Entity;
using NavMember;
namespace NavMember.Controllers
{
[Produces("application/json")]
[Route("api/VendorsAPI")]
public class VendorsAPIController : Controller
{
private TestNavMembershipContext _context;
public class testlist
{
public int MVE_VEID;
public string VE_NAME;
public string VE_ADDR1;
}
public VendorsAPIController(TestNavMembershipContext context)
{
_context = context;
}
// GET: api/VendorsAPI
[HttpGet]
public IEnumerable<testlist> GetVendors()
{
IQueryable<testlist> query = from t1 in _context.Vendors
let t2s = from t2 in _context.VendorMemberResNM
where t2.MVMR_MMID.Value == 237244
select t2.MVMR_VEID.Value
where t2s.Contains(t1.MVE_VEID)
select new testlist { MVE_VEID = t1.MVE_VEID, VE_NAME = t1.VE_NAME, VE_ADDR1 = t1.VE_ADDR1 };
return query;
}
使用System.Collections.Generic;
使用System.Linq;
使用System.Linq.Expressions;
使用系统数据;
使用Microsoft.AspNet.Http;
使用Microsoft.AspNet.Mvc;
使用Microsoft.Data.Entity;
使用导航成员;
命名空间NavMember.Controllers
{
[产生(“应用程序/json”)]
[路线(“api/供应商api”)]
公共类供应商APIController:控制器
{
私有TestNavMembershipContext_context;
公共类测试列表
{
公共国际环境;
公共字符串VE_NAME;
公共字符串VE_ADDR1;
}
公共供应商APIController(TestNavMembershipContext上下文)
{
_上下文=上下文;
}
//获取:api/供应商api
[HttpGet]
公共IEnumerable GetVendors()
{
IQueryable query=来自_context.Vendors中的t1
设t2s=来自_context.vendormemberrsnm中的t2
其中t2.MVMR_MMID.Value==237244
选择t2.MVMR\u VEID.Value
其中t2s.包含(t1.MVE_-VEID)
选择新测试列表{MVE_VEID=t1.MVE_VEID,VE_NAME=t1.VE_NAME,VE_ADDR1=t1.VE_ADDR1};
返回查询;
}
你是否尝试调用query.ToList()
我刚才调用了,没有帮助…它给出了一个错误,多部分标识符“t2.MVMR\u VEID”无法绑定。因此我尝试删除.Value,因此多部分标识符错误消失了,但再次没有数据。我相信t2.MVMR\u VEID.Value(或t2.MVMR\u VEID,两者都尝试过)由于某些类型问题,无法与t1.MVE\u VEID匹配,但不确定是什么原因,因为这两个字段之间的数据不匹配。您是否尝试调用query.ToList()
我刚才调用了,但没有帮助…它在多部分标识符“t2.MVMR\u VEID”时出错无法绑定。因此我尝试删除.Value,因此多部分标识符错误消失,但再次没有数据。我认为t2.MVMR______________________________________________________。