实际上,是否存在用于通过EF6.1 Code First创建和使用视图的官方策略?我可以将数据库反转为Code First,并获取表而不是视图。我可以先将数据库导入Model并获取视图,然后从Model生成数据库,然后修改edmx并将视图转换为表。MSFT似乎几乎放弃了Model First,而新的Update 2似乎对Code First进行了逆向工程,因此我感到被迫转换为Code First,但是EF团队为使用视图或存储过程的任何合理方法提供了支持。代码优先?毕竟,CF应该可以创建数据库,但是,什么-您不再应该在.NET EF应用程序中使用这些SQL Server功能之一?
对于初学者,您可以使用数据库中已经创建的视图和存储过程。对于视图,如果创建如下代码,则无需进行任何映射:
public TestContext : DbContext
{
public DbSet<User> AdminUsers { get; set; }
}
并且在数据库中有一个名为dbo.AdminUsers的视图,它可以映射到类User(包含与属性同名的所有必需属性)。
对于存储过程,可以通过DbContext的Database属性使用SqlQuery函数,例如:
var userActivityReport = context.Database.SqlQuery<UserActivityReport>(
"dbo.GetUserActivityReport @p0, @p1", startDate, endDate);
或通过DbSet类的SqlQuery函数:
var newUsers = context.Users.SqlQuery("dbo.GetNewUsers @p0", count);
如果要通过Entity Framework创建,修改或删除视图和存储过程,则可以使用自定义迁移操作,请参见http://dolinkamark.wordpress.com/2014/05/03/creating-a-custom-migration-operation-实体框架/
为了更好地集成事件,您可以将公共映射API与社区成员提供的库一起使用:https : //codefirstfunctions.codeplex.com/
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句