2013-10-15 16 views
20

Tôi đang sử dụng Khung thực thể 5 và thực hiện truy vấn đơn giản để có được một vài người dùng từ một bảng.Tên đối tượng không hợp lệ 'dbo.EdmMetadata' và 'dbo .__ MigrationHistory'

Cơ sở dữ liệu SQL đã được tạo nên tôi sử dụng các thực thể của mình như một cách để lập bản đồ những gì tôi có.

Khi tôi chạy truy vấn của tôi, tôi phát hiện rằng các truy vấn khác được thực hiện và 2 trong số đó với các lỗi:

QUERY 1

ERROR: Invalid object name 'dbo.__MigrationHistory'.

SELECT 
[GroupBy1].[A1] AS [C1] 
FROM ( 
    SELECT 
     COUNT(1) AS [A1] 
    FROM [dbo].[__MigrationHistory] AS [Extent1] 
) AS [GroupBy1] 

QUERY 2

ERROR: Invalid object name 'dbo.EdmMetadata'.

SELECT TOP (1) 
    [Extent1].[Id] AS [Id], 
    [Extent1].[ModelHash] AS [ModelHash] 
FROM [dbo].[EdmMetadata] AS [Extent1] 
ORDER BY [Extent1].[Id] DESC 

Tại sao lại như vậy?

Tôi không có các bảng dbo.EdmMetadatadbo.__MigrationHistory trong cơ sở dữ liệu của mình khi cơ sở dữ liệu đã tồn tại.

Cách giải quyết vấn đề này?

Trả lời

45

Vì cơ sở dữ liệu đã có sẵn, bạn sẽ không có dbo.EdmMetadatadbo.__MigrationHistory mã nào đang chờ đợi. Và để giải quyết điều này, bạn có thể thử đặt SetInitializer thành null.

static NameOfYourContext() 
{ 
    Database.SetInitializer<NameOfYourContext>(null);   
}  

Bạn có thể thấy điều này trong phần ý kiến ​​của bài này bằng cách Scott Gu

2

Có 3 bước bạn cần phải làm theo:

1- Cho phép di cư trong quản lý gói nếu bạn chưa có được thực hiện:

Enable-Migrations 

2- Thêm di chuyển và đảm bảo sử dụng khóa chuyển đổi -IgnoreChanges khi bạn đã có cơ sở dữ liệu hiện có:

Add-Migration InitialModel -IgnoreChanges 

3- Cập nhật cơ sở dữ liệu. Điều này sẽ tự động tạo bảng __MigrationHistory cho bạn.

Update-Database 
0

Tôi đã tắt cài đặt ngoại lệ của mình. và nó bỏ qua ngoại lệ này và tiếp tục tạo các bảng này cho tôi tự động

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