我有一個網絡應用程序,asp.net網頁形式4.5 C#與EF6的數據庫優先, 我正在從它差不多一年的工作,一切都工作正常,直到今天,當我試圖添加一個從數據庫更新edmx的新視圖。 表加有沒有錯誤,但是從代碼是不可見的,如果我嘗試連接到EntityDataSource,我得到的消息「找不到的CLR類型。」實體框架6找不到<model>的CLR類型。 <entity>
我已經看到代碼生成策略設置爲T4。 如果我更改爲「Legacy ObjectContext」新代碼在代碼中正確顯示並且EntityDataSource工作正常,我可以很好地看到與該Gridview關聯的 ,但是如果我嘗試導航到某個其他頁面時,我可以訪問其他頁面「舊」實體,我得到幾行錯誤:
指定的模式無效。錯誤: CLR類型到EDM類型的映射不明確,因爲多個CLR類型與EDM類型「報告」相匹配。以前發現CLR類型'報告',新發現CLR類型'AppNameModel.Report'。 CLR類型到EDM類型的映射不明確,因爲多個CLR類型與EDM類型「客戶」相匹配。以前發現CLR類型'客戶',新發現CLR類型'AppNameModel.Customer'。 ....等所有以前創建的實體(最後一個沒有列出,並與遺產objCtx策略一起工作!)
那麼EF怎麼了?我已經讀過堆棧溢出中的所有Q &,但似乎沒有解決方案。
我就把web.config中的某些部分:
<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
...
<entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
<parameters>
<parameter value="v11.0" />
</parameters>
</defaultConnectionFactory>
<providers>
<provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
</providers>
這裏是EDMX的屬性:
當我使用T4策略添加視圖時,實際上視圖是n不存在於任何定義該實體的文件中,只顯示在emdx可視化設計器上。我檢查過.cs和.context.cs文件。
請給出一些意見,我必須看看,我該如何解決......有些方向!感謝
我只是遇到了和你一樣的錯誤信息。問題似乎是我對模型類進行了一些更改,但沒有更新其他自動生成的代碼。正如你所提到的,運行自定義工具強制更新,以便解決我的問題。謝謝! – Irina 2016-12-01 22:50:09
對不起,沒有要投票+1或-1 ...它並沒有讓我撤消。這種特殊的修復方式對我來說不起作用,但我很高興它爲別人做了:)奇怪的是,我仍然可以創建腳手架的視圖,但不是腳手架的控制器。 – 2018-02-03 16:49:39