【发布时间】:2021-02-17 14:23:14
【问题描述】:
我正在将 .Net Core Entity Framework 用于科学实验的测试应用程序。
我的 EF 控制器中使用了以下模型。
此模型有一个名为 fuelBurnPerSecond 的计算属性,它使用其他属性进行计算。
此计算属性不在数据库中(我无法添加它,因为它是一个非常旧的数据库)。
无论如何,当我点击控制器GET 方法来获取所有RocketTestProtocols 的列表时,我在返回的JSON 中看不到fuelBurnPerSecond。我看到了其他所有内容,但没有看到计算属性。
我没有收到任何错误。
这是模型:
public partial class RocketTestProtocols
{
public int EngineMass { get; set; }
public int FuelVolume { get; set; }
public WeatherStations WeatherStation { get; set; }
public int fuelBurnPerSecond = ((EngineMass * 0.2) * (FuelVolume * 1.9) / WeatherStation.VelocityWave);
}
控制器:
[HttpGet]
public async Task<ActionResult<IEnumerable<RocketTestProtocols>>> GetRocketTestProtocols()
{
return await _context.RocketTestProtocols.ToListAsync();
}
如何让控制器返回计算属性fuelBurnPerSecond?
谢谢!
【问题讨论】:
-
该属性必须由创建响应的服务器发送。响应是控制器解析以生成类的内容。
-
你能展示你的控制器动作吗?
-
也许这不是一个好主意,但该字段是唯一不是属性的字段。您应该尝试将其更改为
public int fuelBurnPerSecond { get { return ((EngineMass * 0.2) * (FuelVolume * 1.9) / WeatherStation.VelocityWave); } -
@jdweng 谢谢,你的意思是控制器发送的?我将控制器代码添加到我的问题中。控制器发回所有其他属性,而不是计算属性。我需要向我的控制器添加一些东西吗?谢谢!
-
使用 HTTP,您从客户端发送请求并从服务器获得响应。控制器解析 Task
中的响应。响应以 RocketTestProtocols 作为响应的根。
标签: c# entity-framework .net-core entity-framework-core