gpt4 book ai didi

c# - 用于 3 个表连接的 Entity Framework 7 Lambda 表达式

转载 作者:行者123 更新时间:2023-11-30 21:51:41 24 4
gpt4 key购买 nike

我正在尝试构建一个 API 来返回服务器的所有数据。一个服务器可以有多个端点,它们存储在具有多对多关系的单独表中。

我有 3 个表:

  • Servers 表包含所有服务器详细信息
  • Applications 包含应用程序名称的表
  • application_endpoint 表包含表 ServersApplications
  • 的外键

这是我的数据库模型:

enter image description here

这是我的模型:

public class Servers
{
public int id { get; set; }
public string server_name { get; set; }
public string alias { get; set; }
public string ip_address { get; set; }
public Status status { get; set; }
public virtual ICollection<Application_endpoints> endpoint { get; set; }
}

public class Application_endpoints
{
public int id { get; set; }
public int? server_id { get; set; }
[ForeignKey("server_id")]
public Servers server { get; set; }
public int? application_id { get; set; }
[ForeignKey("application_id")]
public Applications application { get; set; }
}

public class Applications
{
public int id { get; set; }
public string app_name { get; set; }
}

public class ServerDbContext : DbContext
{
public DbSet<Applications> Applications { get; set; }
public DbSet<Application_endpoints> Application_endpoints { get; set; }
public DbSet<Servers> Servers { get; set; }
}

在我的 Api Controller 中,我创建了 HttpGet 方法,该方法将查询数据库并返回每个服务器的数据。这是 GET 的简单 API:

private ServerDbContext _context;

public ServersController (ServerDbContext context)
{
_context = context;
}

// GET: api/values
[HttpGet]
public JsonResult Get()
{
var servers = _context.Servers
.Include(endpoint => endpoint.endpoint)
.ToList();
return Json(servers);
}

现在当我发出 get 请求时,我从数据库中取回数据,但是下面 JSON 中的 application 对象返回 null。我想弄清楚如何在我的上述查询中添加左连接,以便我可以从应用程序表中获取应用程序名称。

{
"id": 6,
"server_name": "server1",
"alias": "",
"ip_address": "192.168.1.7",
"endpoint": [
{
"id": 23,
"server_id": 6,
"application_id": 10,
"application": null
}
]
}

非常感谢任何帮助。 :)

最佳答案

给大家,

感谢您引导我走上正确的道路。我进行了快速谷歌搜索,似乎 EF7 中的语法发生了变化。下面对我有用:)

var servers = _context.Servers
.Include(e => e.endpoint).ThenInclude(a => a.application)
.ToList();

关于c# - 用于 3 个表连接的 Entity Framework 7 Lambda 表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35384124/

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