我首先与实体框架代码合作,并试图创建将映射到视图的类。我知道如何为桌子做,如下:
[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);
}
}