0
我已閱讀了相當多的帖子,但這看起來非常有用,但我不確定我瞭解如何實現此解決方案。我是否應該將這些代碼放在使用實體模型的每個類中?我已經閱讀了微軟的文檔,我想我對這個太新了。ASP.Net Linq to Entities:無法加載指定的元數據資源.- EntityConnectionStringBuilder
我的實體模型是在我的DATALAYER這是一個單獨的項目。我也有BUSINESSLOGIC和UI圖層。從我已經能夠收集到的信息來看,這聽起來像是這個問題與我的實體模型處於不同的項目中有關。是對的嗎?提前致謝!
從另一個帖子一種更好的方式來構建連接字符串是EntityConnectionStringBuilder:
public static string GetSqlCeConnectionString(string fileName)
{
var csBuilder = new EntityConnectionStringBuilder();
csBuilder.Provider = "System.Data.SqlServerCe.3.5";
csBuilder.ProviderConnectionString = string.Format("Data Source={0};", fileName);
csBuilder.Metadata = string.Format("res://{0}/YourEdmxFileName.csdl|res://{0}/YourEdmxFileName.ssdl|res://{0}/YourEdmxFileName.msl",
typeof(YourObjectContextType).Assembly.FullName);
return csBuilder.ToString();
}
public static string GetSqlConnectionString(string serverName, string databaseName)
{
SqlConnectionStringBuilder providerCs = new SqlConnectionStringBuilder();
providerCs.DataSource = serverName;
providerCs.InitialCatalog = databaseName;
providerCs.IntegratedSecurity = true;
var csBuilder = new EntityConnectionStringBuilder();
csBuilder.Provider = "System.Data.SqlClient";
csBuilder.ProviderConnectionString = providerCs.ToString();
csBuilder.Metadata = string.Format("res://{0}/YourEdmxFileName.csdl|res://{0}/YourEdmxFileName.ssdl|res://{0}/YourEdmxFileName.msl",
typeof(YourObjectContextType).Assembly.FullName);
return csBuilder.ToString();
}
感謝您的評論。我上面粘貼的代碼是您發佈之前的部分。在我看來,我需要在插入USING函數之前的所有前面的代碼。我的困惑就是所有這些。我是否需要把這個放在每個調用實體的類中? – Susan 2011-12-18 15:22:59
我添加了一個示例,您如何將訪問權限公開給您的實體。 – tenorsax 2011-12-18 19:40:58
@蘇珊,當然你不必使用工廠和創作者。你可以簡單地使用:using(TestEntities contex = new TestEntities()){};如您所見,默認構造函數使用app.config文件中指定的連接字符串名稱。 – tenorsax 2011-12-19 04:12:38