0
私のデータベース(EntityFramework)から外部キーなしでJsonResultを使用してオブジェクトを送信すると、必要な結果が得られます。このオブジェクトがForeignKeyの関係が含まれている場合の関係は結果のJSONではありません。asp.net core:JsonResultで外部キーの関係を保持する
私は何を得る:私は必要なもの
{
"agentId":"9990447f-6703-11e7-9c8b-94de80ab7fee",
...
"configurationId": 22,
"configuration": null
}
:
{
"agentId":"9990447f-6703-11e7-9c8b-94de80ab7fee",
...
"configurationId": 22,
"configuration": {
"id": 0,
...
}
}
私は維持するために何ができます私のjsonのこの外部キーの関係?
私はすでに次のように設定しようとしました:
services.AddMvc().AddJsonOptions(options => options.SerializerSettings.PreserveReferencesHandling = PreserveReferencesHandling.All);
EFコンテキスト:
public class Agent
{
[Key]
public Guid AgentId { get; set; }
...
public int? ConfigurationId { get; set; }
[ForeignKey("ConfigurationId")]
public Configuration Configuration { get; set; }
}
public class Configuration
{
public int Id { get; set; }
...
public ICollection<Agent> Agents { get; set; }
}
コントローラー:
[HttpGet]
public JsonResult Index()
{
var agentList = _databaseContext.Agents;
return new JsonResult(agentList);
}
この「ちょっと」の作品は、私のJSONの設定オブジェクトを取得します。問題は、私はこれですべてのエージェントのリストではなく、最初のエージェントオブジェクトを取得することです。 –
明確にするために、linqが複数のエージェントを返しますが、結果のjsonには1つしか含まれていないことがわかります。 –
問題が見つかりました。 'PreserveReferencesHandling.All'はまだ必要ですか、インクルードが動作しません。私は 'PreserveReferencesHandling.Object'に変更しました。 –