2013-09-24 29 views
7

Tôi đã tạo một assembly DLL có chứa edmx cho cơ sở dữ liệu northwind.Nhận bối cảnh khung thực thể trong Linqpad?

Tôi đã tạo tham chiếu đến dll đó thông qua linqpad và tôi thấy db và có thể chạy truy vấn.

Nhưng - tôi muốn kiểm tra hành vi của thuộc tính DeferredLoadingEnabled và tôi cần đặt nó qua biến ngữ cảnh.

ví dụ

ctx.DeferredLoadingEnabled = false; 

Nhưng làm thế nào tôi có thể truy cập ctx?

linqpad tạo nó cho tôi và tôi cần truy cập nó.

Trả lời

9

Trong Entity Framework 5, thuộc tính tương đương là:

ctx.Configuration.LazyLoadingEnabled = false; 

Nếu bạn đang ở LINQPad, bạn đã có trong bối cảnh, vì vậy bạn chỉ có thể nói:

Configuration.LazyLoadingEnabled = false; 

Nhưng khi tôi sao chép mã từ Visual Studio sang LINQPad, tôi thường sẽ chỉ thêm một dòng ở trên cùng để tất cả các mã hoạt động giống nhau:

var ctx = this; 
+0

Nhưng nếu tôi đặt nó thành false - nó không đưa ra các đơn đặt hàng ... http://i.stack.imgur.com/Nu0Y5.png làm cách nào để hiển thị các đơn đặt hàng? –

+0

@RoyiNamir: Vô hiệu hóa Tải xuống Lười biếng không giống như bắt buộc tải Eager.Xem http: //stackoverflow.com/a/3730555/120955 – StriplingWarrior

2

Khi sử dụng Linqpad, bạn là acually bên trong ObjectContext. Chỉ cần loại:

this. 

và bạn có thể truy cập vào các tài sản trên ObejctContext của bạn.

(còn: chắc chắn rằng bạn sử dụng "C Tuyên Bố #")

+0

http://i.stack.imgur.com /yNTSD.png –

+0

cũng cho câu lệnh C# .... –

+0

chỉ một giây :) im khởi động máy của tôi –

4

Không có DeferredLoadingEnabled tài sản trong Entity Framework - đó là một phần của Linq to SQL, không Linq to entities (EF).

Khuôn khổ thực thể đã trì hoãn tải theo mặc định. Các bảng được nối kết sẽ được tải khi truy cập hoặc khi bạn tải chúng một cách rõ ràng hoặc khi bạn tải chúng trực tiếp bằng tài nguyên đầu tiên (tải háo hức).

+0

+1 để chỉ ra không có thuộc tính 'DeferredLoadingEnabled' trên' ObjectContext' :) –

+0

Tôi có bị mù không? http://books.google.co.il/books?id=t1de8nSVYnkC&pg=PA362&lpg=PA362&dq=%22You+can+make+EF+behave+like+L2S+and+have+it+populate%22&source=bl&ots=24udQsLg3H&sig = boyr3QG0Lb6K_igKU8kQjDqPRUg & hl = vi & sa = X & ei = 5NBBUrK5L9DasgbYt4CQAw & redir_esc = y # v = onepage & q =% 22Bạn% 20%% 20make% 20EF% 20%% 20%% 20L2S% 20%% 20%% 20it% 20%% 22 & f = false –

+0

@RoyiNamir bạn không đúng.nhưng L2S ​​là LINQ to SQL, * không * LINQ to Entities –

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