मैंने हाल ही में कुछ परियोजनाओं के लिए ईएफ v4 कोड केवल लाइब्रेरी का उपयोग करना शुरू कर दिया है जिन पर मैं काम कर रहा हूं। हालांकि, मैं एक झटके में भाग गया है। मैं कनेक्शन स्ट्रिंग के लिए उचित प्रारूप को समझने के लिए प्रतीत नहीं कर सकता। मैं कनेक्शन स्ट्रिंग का निर्माण करने के लिए निम्न कोड का इस्तेमाल किया है:इकाई फ्रेमवर्क v4 कोड-केवल कनेक्शन स्ट्रिंग
string connectionString = new EntityConnectionStringBuilder
{
Provider = "System.Data.SqlClient",
ProviderConnectionString = new SqlConnectionStringBuilder
{
DataSource = "localhost",
InitialCatalog = "ASM_Testing",
IntegratedSecurity = true,
Pooling = false
}.ConnectionString
}.ConnectionString;
हालांकि, यह निम्न त्रुटि में परिणाम का उपयोग कर:
Specifications_for_EntityContext.When_logging_in_application_with_valid_app_role_and_password.Login_should_be_successful : System.ArgumentException : Some required information is missing from the connection string. The 'metadata' keyword is always required.
Stack Trace:
at System.Data.EntityClient.EntityConnection.ValidateValueForTheKeyword(DbConnectionOptions effectiveConnectionOptions, String keywordName)
at System.Data.EntityClient.EntityConnection.ChangeConnectionString(String newConnectionString)
at System.Data.Objects.ObjectContext..ctor(String connectionString)
at ASM.Data.EntityContext..ctor(String connectionString) in C:\Users\Jon Rista\TFS\Advanced Service Management\Trunk\Main\Source\ASM.Data\EntityContext.cs:line 16
at Specifications_for_EntityContext.Behaves_like_EntityContext_connected_to_a_database.TestableEntityContext..ctor(String connectionString) in C:\Users\Jon Rista\TFS\Advanced Service Management\Trunk\Main\Source\Tests.ASM.Data\EntityContextFacts.cs:line 165
at Specifications_for_EntityContext.Behaves_like_EntityContext_connected_to_a_database.InitializeContext() in C:\Users\Jon Rista\TFS\Advanced Service Management\Trunk\Main\Source\Tests.ASM.Data\EntityContextFacts.cs`e`enter code here`nter code here`:line 160
at ASM.Testing.xUnit.ObservationCommand.Execute(Object testClass) in C:\Users\Jon Rista\TFS\Advanced Service Management\Trunk\Main\Source\ASM.Testing.xUnit\ObservationCommand.cs:line 24
at Xunit.Sdk.FixtureCommand.Execute(Object testClass)
at Xunit.Sdk.BeforeAfterCommand.Execute(Object testClass)
at Xunit.Sdk.LifetimeCommand.Execute(Object testClass)
at Xunit.Sdk.TimedCommand.Execute(Object testClass)
at Xunit.Sdk.ExceptionAndOutputCaptureCommand.Execute(Object testClass)
देखकर के रूप में मैं के बाद से मैं किसी भी मेटाडाटा ... की जरूरत नहीं है केवल कोड का उपयोग कर रहा हूँ, मैं थोड़ी सी बांध में हूं। किसी भी जानकारी की काफी सरहना की जाएगी।
इस प्रकार कनेक्शन बिल्डर वर्गों द्वारा उत्पन्न स्ट्रिंग है:
provider=System.Data.SqlClient;provider connection string="Data Source=localhost;Initial Catalog=ASM_Testing;Integrated Security=True;Pooling=False"
कार्य उदाहरण (स्वीकार किए जाते हैं जवाब के आधार पर)
यह ContextBuilder उपयोग करने के लिए किसी भी बनाने के लिए आवश्यक है एक संदर्भ का उदाहरण जो कोड-केवल मोड का उपयोग करता है। यहाँ जो लोग एक ही समस्या का उत्तर खोज रहे हैं के लिए इस की एक काम उदाहरण है:
protected override void InitializeContext()
{
string connectionString = new SqlConnectionStringBuilder
{
DataSource = "localhost",
InitialCatalog = "Testing",
IntegratedSecurity = true,
Pooling = false
}.ConnectionString;
var connection = new SqlConnection(connectionString);
var builder = new ContextBuilder<TestableEntityContext>();
m_context = builder.Create(connection);
}
आप जिसके परिणामस्वरूप स्ट्रिंग पोस्ट कर सकते हैं? या यह कोड निष्पादित करते समय पहले ही उड़ा है? –
@ हेंक: कनेक्शन स्ट्रिंग जोड़ा गया। – jrista