EF Code First:使用Fluent API映射非表对象

8 .net c# entity-framework ef-code-first

我应该如何使用流畅的API在EF CodeFirst中映射我的非表对象,例如Views,StoredProcedure等.

Min*_*Min 4

代码优先中尚不支持映射到存储过程和 vew。这些是 Julia Lerman 的编程实体框架:代码优先的一些解决方案。

映射到可更新视图

modelBuilder.Entity<MyEntity>().ToTable("MY_VIEW")

视图列名称应与实体字段名称相同,您可以使用实体框架插入、更新和删除数据以及选择数据。只需对 Code First 撒谎并告诉 View as Table 即可

使用视图填充对象

var myEntity = dbContext.MyEntity.SqlQuery("SELECT * FROM dbo.MY_VIEW")

视图列名称应与实体字段名称相同,并且您仍然可以获得 DbContext 功能,例如更改跟踪、延迟加载。

使用视图填充非模型对象

var myNonModel = dbContext.Database.SqlQuery("SELECT * FROM dbo.MY_VIEW")

视图列名称应与实体字段名称相同。

使用存储过程

使用视图的技术相同。

var myEntity = dbContext.MyEntity.SqlQuery("dbo.StoredProcedureName @p0 @p1", myParam1, myParam2)