2016-03-15 15 views
6

Ví dụ, tôi có mô hình như vậy:Làm việc với tầm SQL trong Entity Framework Lõi

public class Blog 
{ 
    public int BlogId { get; set; } 
    public string Url { get; set; } 

    public BlogImage BlogImage { get; set; } 
} 

public class BlogImage 
{ 
    public int BlogImageId { get; set; } 
    public byte[] Image { get; set; } 
    public string Caption { get; set; } 

    public int BlogId { get; set; } 
    public Blog Blog { get; set; } 
} 

Tôi muốn quay trở lại trong ImageView xem Urlảnh.

Tôi cần tạo và xác định chế độ xem SQL đó ở đâu?

+0

Tôi nghĩ bạn có thể cần cung cấp thêm tài nguyên. Điều này có liên quan đến MVC không? – Willwsharp

+0

@Willwsharp có nó liên quan đến asp.net core –

+1

Tôi có nghĩa là đây là một ứng dụng MVC? Như trong, bạn đang đề cập đến việc tạo ra một cái nhìn MVC? Ngoài ra, những gì chính xác là bạn đang cố gắng để trở về? Tôi nghĩ bạn nên chỉnh sửa câu hỏi của mình để phản ánh tốt hơn những gì bạn đang cố gắng làm. – Willwsharp

Trả lời

15

Chế độ xem hiện không được Entity Framework Core hỗ trợ. Xem https://github.com/aspnet/EntityFramework/issues/827.

Điều đó nói rằng, bạn có thể lừa EF sử dụng chế độ xem bằng cách ánh xạ thực thể của bạn đến chế độ xem như thể nó là một bảng. Cách tiếp cận này đi kèm với những hạn chế. ví dụ. bạn không thể sử dụng di chuyển, bạn cần phải tự định một khóa cho EF cho chúng tôi và một số truy vấn có thể không hoạt động chính xác. Để giải quyết vấn đề này, bạn có thể viết truy vấn SQL bằng tay

context.Images.FromSql("SELECT * FROM dbo.ImageView") 
+1

Tôi đã cố gắng sử dụng thuộc tính [NotMapped] để xem lớp học, nhưng EF vẫn cố gắng tạo bảng có tên chế độ xem. –

+0

Như tôi đã nói ... lượt xem không thực sự được hỗ trợ. Bạn có thể gặp phải các loại vấn đề này. – natemcmaster

+0

Tôi không phải là một fan hâm mộ của FromSql được gắn với một DbSet và buộc người sử dụng để ánh xạ một lớp học để DbContext của họ. Tôi thấy SqlQuery truyền thống từ các phiên bản trước của EF khi cần thiết để cho phép mọi người chuyển sang EF Core cho những thứ chưa được hỗ trợ cũng như tính linh hoạt. Tôi đã tạo giọng nói của người dùng tại đây: https://data.uservoice.com/forums/72025-entity-framework-feature-suggestions/suggestions/13183638-add-dbcontext-database-sqlquery-to-entity-framewor –

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