我创建了一个引用类库数据层项目的项目。数据层使用Visual Studio
生成Code First from database
:
添加新项目=> ADO.NET实体数据模型=>数据库中的代码优先
我从一个巨大的数据库中选择了所有表(~1000个表),当我尝试从任何表中获取内容时,它只是挂起并最终抛出System.StackOverflowException
。
查询如下:
using (var context = new MyDbModel())
{
var test = context.Student.FirstOrDefault(x => x.studentCode == "ONETWO");
// code is unique, it starts hanging here
}
在SSMS
中运行此语句只需不到一秒钟。
SELECT TOP 1 * FROM Student WHERE studentCode = "ONETWO"
我认为这会导致加载整个数据库,因此导致异常,但我该如何避免呢?