将SQL视图映射到EF 6中的现有实体?
问题描述:
我有一个表dbo.Tasks,任务类,一个TaskMap,并将其添加到数据库上下文没有问题。我也有一个数据库视图dbo.vwComplexTaskQuery返回任务。我如何将这个视图映射到我的任务类?我希望能够做到:将SQL视图映射到EF 6中的现有实体?
List<Task> Tasks = db.vwComplexTaskQuery.ToList();
,而无需创建一个具有相同属性和同一数据注释的vwComplextTaskQuery类。
简体任务类
public class Task
{
public int TaskId { get; set; }
public string Title { get; set; }
}
简体任务列表类
public TaskMap()
{
// Primary Key
this.HasKey(t => t.TaskId);
this.Property(t => t.Title)
.IsRequired()
.HasMaxLength(50);
// Table & Column Mappings
this.ToTable("Tasks");
this.Property(t => t.TaskId).HasColumnName("TaskId");
this.Property(t => t.Title).HasColumnName("Title");
}
这是可能的,如果是这样的例子或链接到文件将是巨大的。
答
我找到了一个解决方案:
List<Task> tasks = db.Tasks.SqlQuery("Select * from vw_AllTasks").ToList<Task>();