我使用了以下方法,但由于连接被重置而失败(错误502,由Cr表示是关于坏网关和服务器用作代理)。
public IEnumerable<Station> GetStations()
{
using (Context context = new Context())
return context.Stations;
}
所以我已经验证了以下工作。正如预期的那样,它确实如此,所以我的EF与数据库谈话时有些可疑。
public IEnumerable<Station> GetStations()
{
return new List<Station> { new Station() };
}
然而,当我在通话时断开应用程序时,我看到它很好地反弹,我看到输出包含所有站点(称为Donkey和Monkey)。
所以我有点困惑,因为我看不出问题出现在哪里。显然,我可以返回这样的一组数据。显然,我可以从数据库中获取所述数据。什么是鸭子(拼写错误)?
我甚至尝试将所有内容更改为已实现的列表,以排除延迟加载的可能性。无济于事......
我注意到的唯一奇怪的是,断点在页面的单个加载上打了两次。它没有告诉我什么,但它是我能想到的唯一可能导致任何事情的东西。
目前的解决方法是获取元素列表,然后根据获取的元素创建新的工作站。请注意 - 我不能如下。
List<Stations> stations = new List<Stations>();
using (Context context = new Context())
foreach (Station station in context.Stations)
stations.Add(station);
return stations;
令人惊讶的是,我必须创建一个全新的并按属性复制其values属性。非常不方便且容易出错。更不用说 - 隐藏这个问题!
List<Station> stations = new List<Station>();
using (Context context = new Context())
foreach (Station station in context.Stations)
stations.Add(new Station { A = station.A });
return stations;
在挖掘日志之后,我注意到返回列表中的元素类型在工作案例中是 Station 但 Station_XXX ... 作为EF的跟踪器保留关注他们。这可能是问题吗?如何以正确的方式摆脱它?