我無法找到我的connectionString語法是如何錯誤的。任何人都可以提出一個方法來解決這個問題?我用連接字符串使用EF有困難。我是EF新手。實體框架ConnectionString解析異常
- 我正在使用Sybase Anywhere 12數據庫。
- 我正在使用Table-First ObjectContext和EDMX在Web應用程序重新啓動的單獨的類庫中。
- 我在我的類庫中使用Ninject模塊來綁定我的存儲庫。
- 我使用ODBC數據存儲所謂的 「測試」
- 其他信息EF 4.3.1.0,.NET 4,VS2010
- 我主要的Web應用程序的web.config有EF連接字符串複製到它:
<connectionStrings> <add name="Entities"connectionString="metadata=res://*/MyEntities.csdl|res://*/MyEntities.ssdl|res://*/MyEntities.msl;provider=iAnywhere.Data.SQLAnywhere;provider connection string="UserID=aUser;Password=aPassword;DataSourceName=Test"" providerName="iAnywhere.Data.SQLAnywhere"/> </connectionStrings>
當我初始化我的實體/ ObjectContext的在我的倉庫(參見使用下面的語句),它返回一個錯誤:「指定的命名連接或者未在配置中發現的,不打算與使用EntityClient提供程序,或無效。「
using (var context = new Entities())
{
return {Linq to Entity here}
}
我打開CLR異常的調試,發現該代碼引發錯誤在.NET Framework這裏:
EntityConnection.cs
effectiveConnectionOptions =新DbConnectionOptions(setting.ConnectionString,EntityConnectionStringBuilder 。同義詞,錯誤);
EDMX設計器生成的:
/// <summary>
/// Initializes a new Entities object using the connection string found in the 'Entities' section of the application configuration file.
/// </summary>
public Entities() : base("name=Entities", "Entities")
{
this.ContextOptions.LazyLoadingEnabled = true;
OnContextCreated();
}
我可以看到我的連接字符串在那裏,所以它是有困難的時候解析的connectionString。我已經嘗試了語法的多種不同的排列,並沒有發現任何東西它接受包括:
- 明確命名大會實體文件,而不是一個通配符(如元數據= RES://MyDomain/MyEntities.csdl .. )
- 使用Sybase友好的ODBC屬性(例如UID而不是UserID,PWD而不是密碼)和DBN(而不是DataSourceName)。
感謝。
你如何設置連接字符串?你的連接實際上是怎樣的? – Pawel
對不起,連接字符串需要顯示特殊的html字符。它現在應該顯示正常。 – evodev
謝謝。我認爲我還不夠清楚 - 你能顯示「實體」類的構造函數來顯示連接字符串是如何設置的嗎?你是自己編寫這段代碼還是由VS生成的? – Pawel