簡體   English   中英

ASP.NET MVC是否可以與SQL View對象一起使用?

[英]Does ASP.NET MVC work with SQL View objects or not?

我正在研究ASP.NET MVC應用程序。 我正在嘗試使用一些SQL View對象(不是SQL表,不是存儲過程)來獲取一些數據,但是它根本無法正常工作。 當我運行該應用程序以轉到其中一個控制器的index()方法以顯示數據時,將引發錯誤,提示:

用戶代碼未處理System.Data.Entity.Core.EntityCommandExecutionException HResult = -2146232004 Message =執行命令定義時發生錯誤。 有關詳細信息,請參見內部異常。 來源=的EntityFramework

然后稍后查看innerexception我有這個:

InnerException:System.Data.SqlClient.SqlException HResult = -2146232060 Message =無效的列名'HeardAboutID'。 源= .Net SqlClient數據提供程序錯誤代碼= -2146232060

錯了 我當然可以肯定在SQL視圖中有一列名為HeardAboutID的列。 我在MVC項目中有一個模型類,其中有一個名為HeardAboutID的列。 所以說HeardAboutID不存在顯然是錯誤的。

因此,這使我感到奇怪,ASP.NET MVC 5是否適用於SQL表和存儲過程? 它實際上不適用於SQL視圖嗎?

我終於得到它的工作。 我發現了一些問題。 首先,我沒有更改ResumeSubmissions表中外鍵列的名稱。 其次,這很難找到,MVC以我不希望的方式將SQL視圖的名稱復數。 最終,在使用SQL Profiler工作了幾個小時之后,我可以看到它在尋找什么。 一旦我將SQL視圖重命名為MVC所尋找的東西,它就很高興。

我的問題的答案是,是的,MVC可以與SQL View對象一起使用。

感謝大家的幫助。

既然您說這根本沒有用,我想分享一下從Entity Framework開始以來遇到的一些事情。 這是我在EF中將“視圖用作模型”時學到的一些知識。

  1. 如果您沒有主鍵,它將嘗試為您制作一個。 這可能是好的,也可能不是,或者完全破壞了數據的視圖。 我發現的兩個解決方案是將您想要的字段命名為帶有ID的PK或使用類似

     ISNULL(fieldname,999999) AS Primary_ID 

    環繞在SQL視圖中的字段名稱。

  2. 如果字段名稱與表名稱匹配,它將更改字段名稱。 例如,您的表名為ORG,表中的字段名為ORG。 EF的腳手架將命名為ORG1。

  3. 如果您不希望對實體進行復數化,則在創建實體對象時,請刪除“復數化或單數化生成的對象名稱”復選標記。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM