2015-07-06 17 views
11

Tôi đang sử dụng Khung thực thể lần đầu tiên, nhưng dường như không hoạt động như mong đợi.Không thể tìm thấy triển khai mẫu truy vấn cho loại nguồn 'System.Data.Entity.DbSet'

tôi có mã này:

using System; 
using System.Collections.Generic; 
using System.Data.Entity; 
using System.Linq; 

public static class QueryClass 
{ 
    public static void Query() 
    { 
     using (var context = new MyDbEntities()) 
     { 
      DbSet<MyTable> set = context.Tables; 
      var query = from val in set select value; 

     } 
    } 
} 

Trên dòng truy vấn (hoàn toàn là "thiết lập" biến được gạch dưới màu đỏ) Tôi nhận được lỗi:

Could not find an implementation of the query pattern for source type 'System.Data.Entity.DbSet'.'Select' not found. Missing a reference or an using directive for 'System.Linq'

MyDbEntities được tự động tạo ra bởi Khung thực thể trong phương thức Cơ sở dữ liệu đầu tiên, context.TablesDbSet, do đó, nó sẽ có thể sử dụng LINQ, đã được thêm thông qua chỉ thị using. Để tránh misurderstantings, trong lớp này, tôi thấy như sau:

public virtual DbSet<MyTable> Tables { get; set; } 

tôi đang thiếu gì để làm cho công việc select?

Cảm ơn bạn.

+0

nào dự án của bạn có một tham chiếu System.Core ? – Krishna

+0

@Krishna có nó – Fylax

Trả lời

14

bạn sẽ cần phải thêm tham chiếu đến System.Data.Linq

System.Data.Linq là LINQ-SQL cụ thể (DataContext, vv)

using System; 
using System.Collections.Generic; 
using System.Data.Entity; 
using System.Data.Linq; 
using System.Linq; 

public static class QueryClass 
{ 
    public static void Query() 
    { 
     using (var context = new MyDbEntities()) 
     { 

      IQueryable<MyTable> qTable= from t in context.Tables 
             select t; // can you confirm if your context has Tables or MyTables? 
      Console.WriteLine("Table Names:"); 
      foreach (var t in qTable) 
      { 
       Console.WriteLine(t.Name);//put the relevant property instead of Name 
      } 
     } 
    } 
} 
+0

Tôi tham chiếu _System.Data.Linq_ và thêm nó chỉ thị _using_, nhưng nó vẫn cho tôi rằng vấn đề – Fylax

+0

nó không hoạt động. Trực tiếp sử dụng từ [...] mang lại cho tôi error_Could không tìm thấy Type hoặc Namespace 'from'_ trong khi thêm một var x = từ [...] cho tôi lỗi ban đầu của bài đăng này. – Fylax

+0

Xin lỗi, tôi đã làm điều này bên ngoài VS. Vui lòng thử lại. Ngoài ra, hãy kiểm tra xem ngữ cảnh của bạn có MyTables hay Tables hay không khi bảng db đặt tên là – Krishna

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