2013-06-18 44 views
6

Tôi đang chơi xung quanh với Nhà cung cấp Loại, cụ thể là nhà cung cấp loại khung thực thể sql. Tôi đang viết các bài kiểm tra dựa vào cơ sở dữ liệu có rất nhiều đối tượng và điều khiển từ xa để kết nối chậm một chút. mỗi khi tôi xây dựng dự án phải mất rất nhiều thời gian, tốt vài phút để xây dựng hoàn thành.Nhà cung cấp loại F # Loại rất chậm xây dựng

Tôi đang bỏ lỡ lý do tại sao trình biên dịch không lưu trữ thông tin loại?

P.S. Thậm chí còn tồi tệ hơn với tương tác F # ....

+0

bạn đang benchmarking gì so với bạn coi đây là chậm? Điểm so sánh của bạn là gì? Ý tôi là, bạn đã thử các Nhà cung cấp Loại chống lại một kết thúc khác? Bỏ phiếu để đóng vì đây là một câu hỏi quá rộng. –

+1

Một bản dựng mất vài phút mỗi lần mất quá nhiều thời gian ... im so với mọi bản dựng khác. –

+0

Một bản dựng mất vài phút mỗi lần? Tôi đã từng làm việc trên một ứng dụng thương mại C++ mất khoảng 1/2 giờ để xây dựng mỗi khi chúng tôi xây dựng nó - và đó là sau một vài lần tối ưu hóa. Trừ khi bạn đang xây dựng mã đồ chơi mỗi lần, việc biên dịch sẽ mất một thời gian. Nói "nó quá chậm" giống như một người dùng cuối nói "nó quá khó để sử dụng" - mơ hồ và khá vô dụng. –

Trả lời

9

Hãy thử sử dụng thuộc tính LocalSchemaFile cho nhà cung cấp dữ liệu. Điều này trỏ đến tệp .csdl được sử dụng để tạo các loại. Bạn có thể yêu cầu nhà cung cấp loại cập nhật tệp này bằng cách đặt thuộc tính ForceUpdate thành true. Để chạy từ lược đồ được lưu trong bộ nhớ cache, chỉ cần đặt ForceUpdate thành false. Đây là cách tôi làm điều này với nhà cung cấp SqlDataConnection, rất giống với nhà cung cấp SqlEntityConnection.

type schema = SqlDataConnection< LocalSchemaFile = "Schema.dbml", ForceUpdate = false, ConnectionString = @"Data Source=<insert your connection string here>" > 
0

Bên cạnh những gì có thể được định nghĩa là một 'xây dựng chậm', (nếu bạn đang ở trong vòng tròn phát triển tdd xanh đỏ, bản xây dựng nhanh chóng trở thành chậm!), Tôi chuyển loại khách hàng đang cung cấp dịch vụ của tôi đến một dự án riêng biệt. Tôi đã có ForceUpdate thiết lập để sai, nhưng vẫn xây dựng được chậm (rõ ràng vẫn còn một số kiểm tra nền của các tập tin dbml được tạo ra đã xảy ra, trong trường hợp của tôi tập tin wsdlschema thực sự).

Sau khi di chuyển tất cả các loại mã nhà cung cấp đến một dự án riêng biệt, bản dựng được nhanh hơn đáng kể!

Lưu ý: tải các tương tác thậm chí còn nhanh hơn, chỉ có bạn phải thêm tham chiếu đến các dll cho các loại

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