7

Tôi có một dự án 3 tầng.EF4 và Chuỗi kết nối

1) Project.Data (EDMX tập tin)
2) Project.Model (
3) Project.Console (ứng dụng Console POCO của))

Tôi đã thêm các chuỗi kết nối vào Project.Console.

<?xml version="1.0" encoding="utf-8"?> 
<configuration> 
    <connectionStrings> 
     <add name="ProjectEntities" connectionString="metadata=res://*/Project.csdl|res://*/Project.ssdl|res://*/Project.msl;provider=System.Data.SqlClient;provider connection string=&quot;Data Source=PC\SQLEXPRESS;Initial Catalog=Project;Integrated Security=True;MultipleActiveResultSets=True&quot;" providerName="System.Data.EntityClient" /> 
    </connectionStrings> 
</configuration> 

Project.Model được tạo bằng cách sử dụng mẫu EntityObject T4 trong VS2010. Nó tạo ra một lớp ObjectContext, với constructor này:

public ProjectEntities() : base("name=ProjectEntities", "ProjectEntities") 
{ 
    this.ContextOptions.LazyLoadingEnabled = true; 
    OnContextCreated(); 
} 

Tôi chỉ cố gắng để nhanh chóng các đối tượng context, trong Project.Console:

namespace Project.Console 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      ProjectEntities pe = new ProjectEntities(); 
     } 
    } 
} 

Tuy nhiên, tôi nhận được một lỗi MetadataException was unhandled tại các nhà xây dựng. Đang nêu Unable to load the specified metadata resource.

Tôi đã thực hiện rất nhiều nghiên cứu (Googling) và nhận thấy rằng nó dường như là một vấn đề liên kết trên các tài nguyên đó. Tôi dường như không thể tìm ra giải pháp.

Mọi trợ giúp đều được đánh giá cao.

+0

Tôi đọc bài viết mà Craig gợi ý, nhưng tôi vẫn không chắc chắn nơi tôi phải đặt ... tham khảo tập tin dll? Tôi có một kịch bản thích của bạn. Tôi giả định trong app.config Project.Model của? Tôi có bối cảnh của tôi và pocos tách ra từ tập tin edm trong dự án riêng biệt như trong trường hợp của bạn, Project.Model. –

+0

Trong dự án bàn điều khiển của tôi, tôi cần một tham chiếu đến dữ liệu của tôi (EDMX) và dự án mô hình. Nó cũng yêu cầu tham chiếu đến System.Data.Entity. –

Trả lời

3

Mở lắp ráp của bạn bằng bất kỳ trình xem tài nguyên nào (ví dụ: RedGate .NET Reflector) và kiểm tra xem tên của tài nguyên siêu dữ liệu có giống với tên bạn đã chỉ định trong app.config hay không.

0

hãy thay thế * với lắp ráp project.data của bạn như dưới đây

<add name="ProjectEntities" connectionString="metadata=res://Project.Data/Project.csdl|res://Project.Data/Project.ssdl|res://Project.Data/Project.msl;provider=System.Data.SqlClient;provider connection string=&quot;Data Source=PC\SQLEXPRESS;Initial Catalog=Project;Integrated Security=True;MultipleActiveResultSets=True&quot;" providerName="System.Data.EntityClient" />