2016-03-15 9 views
6

Na przykład, mam taki model:Praca z SQL widoków w Entity Framework rdzenia

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; } 
} 

chcę wrócić w ImageView widoku Url i Obraz.

Gdzie należy utworzyć i zdefiniować widok SQL?

+0

Myślę, że być może trzeba będzie zapewnić więcej zasobów. Czy to dotyczy MVC? – Willwsharp

+0

@Willwsharp tak jest związany z rdzeniem asp.net –

+1

Mam na myśli to aplikacja MVC? W jaki sposób nawiązujesz do tworzenia widoku MVC? Co dokładnie próbujesz zwrócić? Myślę, że powinieneś edytować swoje pytanie, aby lepiej odzwierciedlało to, co próbujesz zrobić. – Willwsharp

Odpowiedz

15

Widoki nie są obecnie obsługiwane przez Entity Framework Core. Zobacz https://github.com/aspnet/EntityFramework/issues/827.

Powiedziawszy to, możesz oszukać EF w użyciu widoku, mapując swój obiekt do widoku tak, jakby był to stół. Takie podejście ma ograniczenia. na przykład nie możesz korzystać z migracji, musisz ręcznie określić klucz EF, a niektóre zapytania mogą nie działać poprawnie. Aby obejść tę ostatnią część, można pisać zapytania SQL ręcznie

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

Próbowałem użyć atrybutu [NotMapped], aby wyświetlić klasę, ale EF nadal próbuje utworzyć tabelę z nazwą widoku. –

+0

Tak jak powiedziałem ... widoki nie są naprawdę obsługiwane. Prawdopodobnie napotkasz takie problemy. – natemcmaster

+0

Nie jestem fanem FromSql będąc przywiązanym do DbSet i zmuszając użytkownika do mapowania klasy do ich DbContext. Widzę tradycyjny SqlQuery z poprzednich wersji EF, aby umożliwić ludziom przejście do EF Core na rzeczy, które nie są jeszcze obsługiwane, a także elastyczność. Stworzyłem tu głos użytkownika: https://data.uservoice.com/forums/72025-entity-framework-feature-suggestions/suggestions/13183638-add-dbcontext-database-sqlquery-to-entity-framewor –