C# EF代码优先:使用Fluent API映射非表对象
如何使用fluent API映射EF CodeFirst中的非表对象,如视图、StoredProcess等。代码优先中根本不支持存储过程映射。视图的映射必须被破解——您将假装视图是一个表,并希望您的应用程序能够工作。Fluent api设计为仅支持代码优先方案=您的应用程序将创建数据库。因此,它不支持任何数据库功能,如存储过程、视图或函数等DB级逻辑。映射到存储过程和vew在代码中尚不受支持。这些是Julia Lerman的编程实体框架中的一些变通方法:代码优先 映射到可更新视图C# EF代码优先:使用Fluent API映射非表对象,c#,.net,entity-framework,ef-code-first,C#,.net,Entity Framework,Ef Code First,如何使用fluent API映射EF CodeFirst中的非表对象,如视图、StoredProcess等。代码优先中根本不支持存储过程映射。视图的映射必须被破解——您将假装视图是一个表,并希望您的应用程序能够工作。Fluent api设计为仅支持代码优先方案=您的应用程序将创建数据库。因此,它不支持任何数据库功能,如存储过程、视图或函数等DB级逻辑。映射到存储过程和vew在代码中尚不受支持。这些是Julia Lerman的编程实体框架中的一些变通方法:代码优先 映射到可更新视图 modelBu
modelBuilder.Entity().ToTable(“我的视图”)
视图列名应与实体字段名相同,并且
可以使用实体框架插入、更新和删除数据
以及选择它。只要先撒谎编码,然后说出观点
像桌子一样
使用视图填充对象
var myEntity=dbContext.myEntity.SqlQuery(“从dbo.MY_视图中选择*)
视图列名应该与实体字段名相同,并且您仍然可以获得DbContext功能,例如更改跟踪、延迟加载
使用视图填充非模型对象
var myNonModel=dbContext.Database.SqlQuery(“从dbo.MY_视图中选择*)
视图列名应与实体字段名相同
使用存储过程
使用视图时使用相同的技术
var myEntity=dbContext.myEntity.SqlQuery(“dbo.StoredProcedureName@p0@p1”,myParam1,myParam2)
+1:当真正首先使用代码或任何与真正代码相关的问题/答案时,数据库不应该有任何应用程序使用的视图、函数或S.p。