2017-05-24 3 views
0

したがって、私はエンティティを持つ初心者です。いくつかの値を投稿しようとしていますが、別のモデルクラスの中にあるモデルクラスの値を取得できません。 私が何か間違っていることを考えているなら、正しい方法について助けてくれてありがとう。エンティティCからのポスト(HTTP)値の正しい方法#

モデルクラス1(resultados)

public partial class resultados 
{ 
    [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors")] 
    public resultados() 
    { 
     this.respLysholm = new HashSet<respLysholm>(); 
    } 

    public int idResult { get; set; } 
    public int perfilPac_idPac { get; set; } 
    public int resultado { get; set; } 
    public int id_questionario { get; set; } 
    public System.DateTime dtRegistro { get; set; } 
    //public respLysholm respostasLysholm { get; set; } 

    public virtual perfilPac perfilPac { get; set; } 
    [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")] 
    public virtual ICollection<respLysholm> respLysholm { get; set; } 
} 

Modelクラス2(respLysholm):私のコントローラで

public partial class respLysholm 
{ 
    public int idPac { get; set; } 
    public int resultados_idResult { get; set; } 
    public int questao1 { get; set; } 
    public int questao2 { get; set; } 
    public int questao3 { get; set; } 
    public int questao4 { get; set; } 
    public int questao5 { get; set; } 
    public int questao6 { get; set; } 
    public int questao7 { get; set; } 
    public int questao8 { get; set; } 
    public System.DateTime dtRegistro { get; set; } 

} 

、Iは "resultados" の値とrespLysholm」の値を持つオブジェクトを受け取ります"それはクラス" resultados "の中のクラスです。 "respLysholm"の値をデータベースに送る必要があります。さて、 "resultados"の値だけが動いています。

[HttpPost] 
[ResponseType(typeof(resultados))] 
public async Task<IHttpActionResult> Postresultados([FromBody]resultados Resultados) 
{ 

    if (!ModelState.IsValid) 
    { 
     return BadRequest(ModelState); 
    } 


    db.resultados.Add(Resultados); 
    await db.SaveChangesAsync(); 

    respLysholm respostas = new respLysholm 
    { 
     idPac = Resultados.perfilPac_idPac, 
     resultados_idResult = Resultados.idResult 

    }; 
    \\this code doesnt work but is what i mean that i need. 
    \\db.respLysholm.Add(Resultados.respLysholm); 
    \\await db.SaveChangesAsync(); 

} 

私は "respostasLysholm"の値をすべて取得したいと思います。

{"idResult":0,"perfilPac_idPac":1,"resultado":14,"id_questionario":1,"dtRegistro":"2017-05-23T23:28:24.916866-03:00", 
"respostasLysholm":{"idPac":1,"resultados_idResult":0 ,"questao1":3}} 

答えて

0

あなたのコードは、C#または.NETの規約に従わないため、読みにくいです。あなたが持っているものは、1対多の関係です。ここでは、1対多の関係でアイテムをdbに追加する方法を示します。この例では、多くの学生がいるクラスを持っています:

var science = new Class(); 
science.Name = "Sci-101"; 

science.Students.Add(new Student { Name = "Tom" }); 
science.Students.Add(new Student { Name = "Jerry" }); 

using (var dbCtx = new SchoolDBEntities()) 
{ 
    // Add the class 
    dbCtx.Classes.Add(science); 

    // Save whole entity graph to the database. 
    // You do not need to save the students separately since they are part 
    // of the class. We have already added them to the class so saving the 
    // class will save the students added to the class as well. 
    dbCtx.SaveChanges(); 
} 
+0

このコードはすべてVS2017によって自動生成されました。私はデータベースを行い、データベースからエンティティを適用した後。ちょうどこれ。しかし、コードはちょうど1つのテーブルへのポストを行います...私は複数でやる必要があります...だから、私は値を "抽出"し、それぞれのデータベースに追加することを考えています。 –

+0

Postの値の本体で編集しました。あなたは私を助け場合、私は感謝の –

+0

私は手動でしたが、とても醜いです...感謝... 'respLysholm respostas =新しいrespLysholm { idPac = Resultados.perfilPac_idPac、 resultados_idResult = resultados.idResult、 questao1 = Resultados.respostasLysholm .questao1, questao2 = Resultados.respostasLysholm.questao2、 }; ' –

関連する問題