我看到這個問題已經有很多問題,但是由於我先使用模型而不是先編碼,所有解決方案都沒有幫助我。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,它不起作用......我一直在這個問題上停留了一個多星期,所以真正的幫助將會很長。
你有圖嗎? – Juan
我解決了這個問題(請參閱下面的答案)。 – grantathon