gpt4 book ai didi

c# - 使用 Entity Framework 4 使用 Web Api 返回复杂对象

转载 作者:行者123 更新时间:2023-11-30 21:10:23 25 4
gpt4 key购买 nike

我使用 WebApi 和 Entity Framework 构建了一个 REST 服务。在我的应用程序中,我有 2 个项目 - 一个具有 API 功能,另一个具有我将在我的 Web 项目中使用的模型类。

我遇到的问题是我似乎无法为任何实体呈现子集合。例如,我有以下 2 个类:

    public class User
{
public int UserId { get; set; }

public string Name { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }

public virtual Collection<Achievement> Achievements { get; set; }
}

public class Achievement
{
public int AchievementId { get; set; }

public string Achievement { get; set; }
public string Value { get; set; }

public User User { get; set; }
}

并且我想使用以下对我的存储库的调用来检索用户实体和所有用户成就的集合(假设我已经为 2 个对象中的每一个都有一个 DbSet)

var user = dbContext.Users
.Include(u=>u.Achievements)
.Where(u=>u.UserId == 1)
.First();

我已经运行这段代码并通过包含上述语句的方法进行调试,它正确地检索了我需要的所有信息,但是,在这一点之后,数据不会呈现给浏览器,而是内容长度为零返回。

我已经阅读了大量有关此事的广泛信息,似乎有人建议创建自定义序列化程序来处理复杂的外部实体。我只是认为必须有更好的方法……这肯定是 webapi 框架开发中的一个问题——我觉得我好像遗漏了一些基本的东西

谢谢。

最佳答案

您缺少的基本部分是 Web API 框架的工作是使您能够使用 HTTP 将有效负载从 A 点传输到 B 点,而且您远非孤军奋战。

这些有效负载的构造方式是一个完全独立的问题,应作为您应用的一个独特部分来对待。 Web API 团队已尝试构建一些简单的有效载荷构造工具,以用于简单的情况,但如果您正在尝试构建任何体面大小的应用程序,那么我建议您完全控制该过程。不要指望 Web API 会为您做这些。

关于c# - 使用 Entity Framework 4 使用 Web Api 返回复杂对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8515189/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com