2017-05-24 4 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; } 
} 

모델 클래스 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; } 

} 

, 나는 "respLysholm의"resultados "의 가치와 값으로 객체를받을 "클래스"resultados "안에있는 클래스입니다. "respLysholm"값을 데이터베이스에 보내야합니다. 자, 이제 "결과"가치가 있습니다.

[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 규칙을 따르지 않아 코드를 읽기가 매우 어렵습니다. 당신이 가지고있는 것은 일대 다 (one-to-many) 관계입니다. 다음은 일대 다 관계에서 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에 의해 자동 생성되었습니다. 나는 데이터베이스를 작성한 후 데이터베이스에서 엔티티를 적용했다. 딱 이것. 하지만 코드는 단지 하나의 테이블에 게시를 수행합니다 ... 나는 둘 이상의 작업을 수행해야합니다 ... 그래서, 나는 값을 "추출"하고 해당 데이터베이스에 추가하려고합니다. –

+0

Post 값의 본문으로 편집했습니다. 나는 당신이 나를 도와 주면 내가 직접했다 –

+0

덕분에 ... 감사하지만 ... 너무 못생긴'respLysholm respostas = 새로운 respLysholm { idPac = Resultados.perfilPac_idPac, resultados_idResult = resultados.idResult, questao1 = Resultados.respostasLysholm .questao1, questao2 = Resultados.respostasLysholm.questao2, }}; ' –

관련 문제