是否有类似[Table(Table()]的属性,可以创建一个将首先映射到EF代码中的视图的类



我首先与实体框架代码合作,并试图创建将映射到视图的类。我知道如何为桌子做,如下:

[Table("FIL002")]
public class FIL002
{  
    [Key]
    [DatabaseGeneratedAttribute(DatabaseGeneratedOption.None)]
    public Int64 Payer_Number { get; set; }
    public string Payer_Name { get; set; }
}

但是,我找不到视图的属性(例如[Table(...)]。是否有一个?

视图的查询方式与表格完全相同。因此,只需照常使用[Table()]即可。

这不会使关联的DB集合只读,因此您必须确保不要尝试保存您从中获得的任何对象(除非您的视图当然是可写的)。

code-First中没有直接方法,但是您可以dbcontext发送原始sql'create view'命令:

public class MyInitializer : CreateDatabaseIfNotExists<MyContext>
{
  protected override void Seed(MyContext context)
  {
    query = "CREATE VIEW [ schema_name . ] view_name [ (column [ ,...n ] ) ] 
            [ WITH <view_attribute> [ ,...n ] ] 
            AS select_statement 
             [ WITH CHECK OPTION ] 
             [ ; ]
            <view_attribute> ::= 
            {
                [ ENCRYPTION ]
                [ SCHEMABINDING ]
                [ VIEW_METADATA ]     
            } ";
    context.Database.SqlCommand(query);
  }
}

最新更新