2012-07-09 29 views
42

Tôi đang cố gắng sử dụng di chuyển dữ liệu Khung thực thể, như được mô tả trong this post.Cách triển khai IDbContextFactory để sử dụng với việc di chuyển dữ liệu Khung thực thể

Tuy nhiên, khi tôi cố gắng thực hiện các bước Enable-Migrations, tôi nhận được lỗi sau trong Package Manager Console:

The target context 'MyDataContext' is not constructible. Add a default constructor or provide an implementation of IDbContextFactory 

Vì vậy, tôi đã tạo ra một lớp nhà máy mà thực hiện IDbContextFactory trong dự án có chứa lớp DbContext của tôi , nhưng việc di chuyển dữ liệu dường như không nhận ra nó.

Có điều gì mà tôi nên làm rõ ràng để hướng dẫn việc di chuyển dữ liệu để sử dụng lớp nhà máy này không?

Trả lời

58

Tôi cũng nhấn vấn đề này vì tôi đã viết ngữ cảnh của mình để lấy tên chuỗi kết nối (và sau đó sử dụng ninject để cung cấp nó).

Quá trình bạn đã đi qua dường như đúng, đây là một đoạn thực hiện lớp học của tôi nếu nó là của bất kỳ sự giúp đỡ:

public class MigrationsContextFactory : IDbContextFactory<MyContext> 
{ 
    public MyContext Create() 
    { 
     return new MyDBContext("connectionStringName"); 
    } 
} 

Đó nên là tất cả các bạn cần.

+0

Cảm ơn câu trả lời của bạn - nó hoạt động. Tôi không thể tưởng tượng những gì tôi đã làm sai lần đầu tiên xung quanh, như tôi nhớ lại thực hiện chính xác cùng một khuôn mẫu bản thân mình. Trong mọi trường hợp, vấn đề được giải quyết. Cảm ơn. –

+0

Hoàn hảo, vui vì nó đã giúp :) – dougajmcdonald

+2

Bạn đã đặt lớp này ở đâu? –

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