使用Linq的外键约束极其缓慢

时间:2012-07-24 07:30:27

标签: 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 _trip;
}

当我调试代码时,检索到正确的对象。但是如果我继续跑步,就没有回应。我猜这是因为对于返回行中存在的每个外键,ADO会通过其他映射表进行另一次查找,这会大大减慢所有内容。

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

有关如何关闭该获取对象的FKC查找的任何想法吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

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

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