0

안녕 얘들 아 나 ​​질문. 이런 질문은 자주 묻는다는 것을 알고 있지만, 몇 시간 동안 해결책을 찾고 많은 답을 읽었지 만 올바른 답변을 찾지 못했습니다. ASP.NET MVC 4 면도기를 사용하여 응용 프로그램을 수행하고 있습니다. 나는이 시스템에 익숙하지 않다. Entity Framework 5 (Database-First Approach)를 사용하여 .edmx 데이터 모델을 만들었습니다.엔티티 프레임 워크를 사용하여 MVC4 컨트롤러 만들기

namespace KSM3.Models 
{ 
    using System; 
    using System.Data.Entity; 
    using System.Data.Entity.Infrastructure; 
    using System.Data.Objects; 
    using System.Data.Objects.DataClasses; 
    using System.Linq; 

    public partial class kontrollsystemEntities : DbContext 
    { 
     public kontrollsystemEntities() 
      : base("name=kontrollsystemEntities") 
     { 
     } 

     protected override void OnModelCreating(DbModelBuilder modelBuilder) 
     { 
      throw new UnintentionalCodeFirstException(); 
     } 


     [EdmFunction("kontrollsystemEntities", "udf_GetReportsByController")] 
     public virtual IQueryable<udf_GetReportsByController_Result> udf_GetReportsByController(string controller_account) 
     { 
      var controller_accountParameter = controller_account != null ? 
       new ObjectParameter("controller_account", controller_account) : 
       new ObjectParameter("controller_account", typeof(string)); 

      return ((IObjectContextAdapter)this).ObjectContext.CreateQuery<udf_GetReportsByController_Result>("[kontrollsystemEntities].[udf_GetReportsByController](@controller_account)", controller_accountParameter); 
     }  
    } 
} 

내 모델 클래스는 다음과 같습니다 :

namespace KSM3.Models 
{ 
    using System; 

    public partial class udf_GetReportsByController_Result 
    { 
     public int ID { get; set; } 
     public string ProviderID { get; set; } 
     public int VertragID { get; set; } 
     public System.DateTime Leistungszeitraum_von { get; set; } 
     public System.DateTime Leistungszeitraum_bis { get; set; } 
     public string ReportklasseID { get; set; } 
     public int Version { get; set; } 
     public string Status { get; set; } 
    } 
} 

지금 내 수업을 "컨트롤러를 추가"를 선택을 클릭하면, 내가 얻을 내 자동 생성 컨텍스트 클래스처럼 보이는 방법이다 오류 메시지 : "KSM3.Models.udf_GetReportsByController_Result.cs에 대한 메타 데이터를 검색 할 수 없습니다."

참고 : Entity Framework를 사용하여 테이블이 아닌 사용자 정의 함수에서 정보를 검색합니다! 테이블을 사용하여 동일한 절차를 수행하면 작동합니다! 이 작업을하려면 무엇을 준비하거나 변경해야합니까? 모든 해답을 가져 주셔서 감사합니다.

+0

는 저장 프로 시저를 udf_GetReportsByController''입니까? – meda

+0

테이블을 반환하는 사용자 정의 함수가 없습니다. – TheDidi

답변

0

내 문제를 해결했습니다. 감사합니다. 컨트롤러에서 udf_GetReportsByController (string controller_account) 메서드를 호출하고 IQueryable-Result를 내보기로 가져와야했습니다.

내 컨트롤러는 다음과 같다 (참고 : Beginner's의 실수를)

공용 클래스 ReportController : 컨트롤러 dB = 새로운 kontrollsystemEntities { 개인 kontrollsystemEntities();

// 
    // GET: /Report/ 

    public ActionResult Index() 
    { 
     IQueryable<udf_GetReportsByController_Result> result = db.udf_GetReportsByController(User.Identity.Name); 
     return View(result.ToList()); 
    } 
} 

은}