2016-01-29 29 views
1

我看到這個問題已經有很多問題,但是由於我先使用模型而不是先編碼,所有解決方案都沒有幫助我。EF6模型第一:指定的模式無效,錯誤0040

我在使用EF6的VS 2015中有一個C#項目。我正在使用模型優先方法構建數據庫,並可以成功地從模型生成SQL代碼並在SSMS中運行它。我正在使用SQL Server LocalDB。

我的問題是,每當我試圖以編程創建的實體添加到集合(表),它所屬的,我總是得到錯誤

類型的異常「System.Data.Entity的.Core.MetadataException'發生在mscorlib.dll中,但未在用戶代碼中處理

附加信息:指定的模式無效。

錯誤: Market.ssdl(184,6):錯誤0040:該類型爲nvarchar(最大)不與命名空間或別名合格。只有原始類型可以不受限制地使用。

我創建的實體只有一個屬性;一個字符串(或數據庫中的nvarchar(max))。再次,我可以創建該對象,但在保存任何更改之前,我嘗試將其添加到其集合(或表)中時,出現上述錯誤。我甚至嘗試不命名Name屬性,但錯誤仍然存​​在。

using (var context = new MarketContainer()) { // Create data source var datasource = new DataSource() { Name = dataSourceName }; // Save data source context.DataSources.Add(datasource); }

另一個SO回答提出的.TT文件,然後點擊「運行自定義工具」點擊右鍵,但沒有做任何事情。

我用MySQL試了一次,它工作的很好!現在我需要遷移到SQL Server,它不起作用......我一直在這個問題上停留了一個多星期,所以真正的幫助將會很長。

+0

你有圖嗎? – Juan

+0

我解決了這個問題(請參閱下面的答案)。 – grantathon

回答

1

問題已解決。我正在引用包含來自另一個項目的實體模型的項目,並且App.configs不匹配。一旦我將實體項目的配置文件中的內容複製到引用項目中,一切都開始正常工作。

希望這可以幫助別人以外的人!

相關問題