C# 使用Linq的外键约束非常慢

C# 使用Linq的外键约束非常慢,c#,linq,ado.net,foreign-keys,C#,Linq,Ado.net,Foreign Keys,我有一个SQL Server数据库,我正试图为它构建一个RESTful API。 我使用ADO.Net和Linq从如下表中检索一行: [HttpGet] public tTrip getTripById(Guid id) { var _trip = (from trips in db.tTrip where trips.ID == id select trips).FirstOrDefault(); return

我有一个SQL Server数据库,我正试图为它构建一个RESTful API。 我使用ADO.Net和Linq从如下表中检索一行:

[HttpGet]
public tTrip getTripById(Guid id)
{
    var _trip = (from trips in db.tTrip
                 where trips.ID == id
                 select trips).FirstOrDefault();
    return _trip;
}
调试代码时,将检索正确的对象。但是,如果我继续运行,将不会有响应。我猜这是因为对于返回行中的每一个外键,ADO都会通过其他映射表进行另一次查找,这会大大降低速度

如果我只选择一个不包含任何FKCs的列,一切正常

知道如何关闭该获取对象的FKC查找吗


谢谢大家!

我发现了问题-在ObjectContext类中(“db”变量来自btw),我将ContextOptions.LazyLoadingEnabled变量设置为true


将其设置为false,应用程序只返回每个条目的Guid,而不是从数据库加载条目详细信息。

是LINQ到SQL还是实体框架与SQL Server的连接通过ADO.Net工作,但在代码中我使用LINQ。我认为Linq部分很好(因为可以很快找到正确的对象),但是外键查找给我带来了麻烦?两者都有“Linq您可以使用”。“db”变量来自哪里?你能展示一下完整的控制器吗?或者至少是相关的位?我发现了问题-在ObjectContext类中(db变量来自btw),我将ContextOptions.LazyLoadingEnabled变量设置为true。将其设置为false,应用程序将仅返回每个条目的Guid,而不是从数据库加载条目详细信息。