使用EF

时间:2015-12-24 22:19:16

标签: c# entity-framework

我使用了以下方法,但由于连接被重置而失败(错误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的跟踪器保留关注他们。这可能是问题吗?如何以正确的方式摆脱它?

0 个答案:

没有答案
相关问题