0

嘿,夥計們我有一個問題。我知道這樣的問題經常被問到,但是我花了幾個小時的時間解決了一些問題並閱讀了很多答案,但是我找不到合適的答案。我正在做一個使用ASP.NET MVC 4 Razor的應用程序。我對這個系統比較陌生。我使用實體框架5(數據庫優先方法)創建了一個.edmx數據模型。這是我的自動生成Context類的樣子:使用實體框架創建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的元數據」

注意:我使用實體框架從用戶定義的函數中檢索信息,而不是從表中檢索信息!如果我用一張桌子嘗試相同的過程,它就可以工作! 爲了完成這項工作,我需要做什麼準備或更改? 謝謝你所有的答案!

+0

被'udf_GetReportsByController'存儲過程? – meda

+0

沒有用戶定義的函數返回一個表。 – TheDidi

回答

0

我已經解決了我的問題,謝謝! 我必須調用控制器中的udf_GetReportsByController(string controller_account)方法,並將IQueryable-Result傳遞給我的視圖。

我的控制器看起來像這些(注:Beginner's錯誤)

公共類ReportController:控制器 { 私人kontrollsystemEntities DB =新kontrollsystemEntities();

// 
    // GET: /Report/ 

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

}

相關問題