2009-03-26 46 views
5

Trong file cấu hình của tôi, tôi có một chuỗi kết nối được sử dụng bởi một phần di sản của ứng dụng (sử dụng Datasets) và một chuỗi cho Entity Framework:Chuỗi kết nối Khung thực thể có thể sử dụng lại chuỗi kết nối hiện có không?

<connectionStrings> 
    <add name="Database" connectionString="Server=..." /> 
    <add name="Entities" connectionString="metadata=.....connection string='Server=..." /> 
</connectionStrings> 

này có nghĩa là tên máy chủ, tên cơ sở dữ liệu, vv được quy định hai lần . Tôi muốn nói với chuỗi kết nối EF để tái sử dụng chuỗi đầu tiên - điều này có khả thi không?

Trả lời

1

Tôi nghĩ rằng một cách tiếp cận tốt hơn sẽ là cấu trúc lại ứng dụng để chỉ sử dụng một chuỗi kết nối thay vì cố tham chiếu một chuỗi từ tệp kia trong tệp cấu hình của bạn.

+1

Vấn đề là các chuỗi kết nối phải khác nhau - Entity Framework yêu cầu nó trong một định dạng, trong khi DataSets sẽ không nhận dạng được. –

+0

Điều đó nói rằng, tôi có thể móc các nhà xây dựng để tự xây dựng chuỗi kết nối thực thể bằng cách sử dụng một hiện tại ... –

+0

Ah - Tôi hiểu ý của bạn là gì. –

16

Tôi biết bài này là một chút cũ, nhưng tôi con số này sẽ giúp ai đó ngoài kia:

Bạn có thể sử dụng EntityConnectionStringBuilder để xây dựng kết nối EF của bạn từ chuỗi kết nối hiện tại của bạn. Đây là mẫu tôi đang sử dụng trong mã của riêng tôi:

public static string GetEntityFrameworkConnectionString(string clientConnectionString) 
{ 
    EntityConnectionStringBuilder entityBuilder = new EntityConnectionStringBuilder(); 
    entityBuilder.Provider = "System.Data.SqlClient"; 
    entityBuilder.ProviderConnectionString = clientConnectionString; 
    entityBuilder.Metadata = "res://*/Entities.UBTEntities.csdl|res://*/Entities.UBTEntities.ssdl|res://*/Entities.UBTEntities.msl"; 
    return entityBuilder.ToString(); 
} 

Vì vậy, khi bạn khởi tạo nhà cung cấp dịch vụ EF, chỉ cần chuyển chuỗi từ phương thức trên vào hàm tạo.

Hy vọng điều này sẽ hữu ích.

Các vấn đề liên quan