bạn nên sử dụng EntityConnectionFactory
Đây là những gì bạn cần.
public string CreateConnectionString(string BasicConnectionString)
{
//EntityConnectionFactory
var entityConnectionStringBuilder= new EntityConnectionStringBuilder();
entityConnectionStringBuilder.Provider = "Your Provicer here" //For me it is "System.Data.SqlClient";
entityConnectionStringBuilder.ProviderConnectionString = BasicConnectionString;
entityConnectionStringBuilder.Metadata = "res://*";
return entityConnectionStringBuilder.ToString();
}
Đây là cách sử dụng mẫu
MyContext ctx = new MyContext(CreateConnectionString())
::Cập nhật ::
Khi bạn đang sử dụng phương pháp DB đầu tiên, hãy xem hình ảnh sau đây
khi có hai nút radio này, hãy chọn nút đầu tiên. Sau đó, bạn sẽ có thể đặt chuỗi kết nối cho mô hình của mình.
Đây là bối cảnh của tôi trông như thế nào (Mặc dù đó là ngữ cảnh đối tượng. Nhưng không quan trọng trong ngữ cảnh của câu hỏi này)
public partial class DataContext : ObjectContext
{
#region Constructors
/// <summary>
/// Initializes a new DataContext object using the connection string found in the 'DataContext' section of the application configuration file.
/// </summary>
public DataContext() : base("name=DataContext", "DataContext")
{
this.ContextOptions.LazyLoadingEnabled = true;
OnContextCreated();
}
/// <summary>
/// Initialize a new DataContext object.
/// </summary>
public DataContext(string connectionString) : base(connectionString, "DataContext")
{
this.ContextOptions.LazyLoadingEnabled = true;
OnContextCreated();
}
/// <summary>
/// Initialize a new DataContext object.
/// </summary>
public DataContext(EntityConnection connection) : base(connection, "DataContext")
{
this.ContextOptions.LazyLoadingEnabled = true;
OnContextCreated();
}
#endregion
#region Partial Methods
partial void OnContextCreated();
#endregion
...
}
Cập nhật
Thêm phương thức khởi tạo mà bạn đang tìm kiếm trong một lớp một phần bên ngoài lớp thực thể được tạo tự động:
public partial class WMSChennaiDEVEntities : DbContext
{
public WMSChennaiDEVEntities(string connectionstring)
: base(connectionstring)
{
}
}
Hàm tạo này dường như không được bao gồm trong EF 5/6 để ngăn chúng tôi vô tình truyền một chuỗi kết nối sql khi một chuỗi kết nối thực thể được mong muốn.