如何使用流畅的API在EF Code First中映射我的重要对象,例如Views,StoredProcedure等。
答案 0 :(得分:4)
首先在代码中不支持映射到存储过程和vew。这些是Julia Lerman编程实体框架:Code First的一些工作。
映射到可更新视图
modelBuilder.Entity<MyEntity>().ToTable("MY_VIEW")
查看列名称应与实体字段名称相同 可以使用实体框架来插入,更新和删除数据 以及选择它。 只是欺骗Code First并告诉View 如表。
使用视图填充对象
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)
答案 1 :(得分:2)
首先,代码中不支持存储过程的映射。视图映射必须被黑客入侵 - 您将假装视图是一个表,并希望您的应用程序可以正常工作。 Fluent-api旨在仅支持代码优先方案=您的应用程序将创建数据库。因此,它不支持任何数据库级逻辑的数据库功能,如存储过程,视图或函数。