2016-03-15 151 views
6

例如SQL视图的工作,我有这样的模式:与实体框架的核心

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

我想在的ImageView视图地址图片返回。

我需要在哪里创建和定义SQL视图?

+0

SQL查询,我想你可能需要提供更多的资源。这与MVC有关吗? – Willwsharp

+0

@Willwsharp是的,它涉及到asp.net核心 –

+1

我的意思是这是一个MVC应用程序?在中,你是指创建一个MVC视图?另外,你究竟想要返回什么?我认为你应该编辑你的问题,以更好地反映你正在尝试做什么。 – Willwsharp

回答

15

实体框架核心当前不支持视图。见https://github.com/aspnet/EntityFramework/issues/827

也就是说,您可以通过将您的实体映射到视图,就好像它是表格一样使用视图来使用视图。这种方法有局限性。例如您不能使用迁移,您需要手动为EF指定一个密钥给我们,并且某些查询可能无法正常工作。为了解决这个问题最后一部分,你可以手工编写

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

我试图用[NotMapped]属性来查看类,但是EF仍然试图用view的名字创建表。 –

+0

就像我说的...意见并不真正支持。您可能会遇到这类问题。 – natemcmaster

+0

我不喜欢将FromSql绑定到DbSet并强制用户将类映射到它们的DbContext。我认为必要时可以从EF的早期版本中看到传统的SqlQuery ,以便人们能够转移到EF Core,以获得不被支持的事物以及灵活性。我在这里创建了一个用户语音:https://data.uservoice.com/forums/72025-entity-framework-feature-suggestions/suggestions/13183638-add-dbcontext-database-sqlquery-to-entity-framewor –