使用 EntityFramework6 读取对象
本文关键字:取对象 读取 EntityFramework6 使用 | 更新日期: 2023-09-27 18:34:27
我想读取数据库中的所有对象,并使用Web API控制器返回它们。
有3级桌子。 模板包含段落列表,段落包含数据值列表。
阅读模板和段落很容易,我只是这样做:
Database db = new Database();
db.Configuration.ProxyCreationEnabled = false;
db.Configuration.LazyLoadingEnabled = false;
var aux = db.Templates.Include("Paragraphs");
如果我也像这样添加数据Vlues
var aux = db.Templates.Include("Paragraphs").Include("DataValues");
我收到此消息:
A specified Include path is not valid. The EntityType 'Database.Template' does not declare a navigation property with the name 'DataValues'.
我知道这个错误是正常的,但是如何以这种方式读取数据值呢?
我必须从EF(POCO)创建此值的POCO对象
因为 DataValues 是段落的导航程序,你只能从段落访问,所以对于模板,它不是第一级属性,所以将代码更改为:
var aux = db.Templates
.Include("Paragraphs")
.Include("Paragraphs.DataValues");
导航属性应为相关实体集合的实体类型。包含一些导航属性意味着将当前实体与一些或多个相关实体联接。这允许在单个查询中预先加载来自多个表的数据。 DataValues
不是导航属性 - 它是字段,默认情况下会加载它,你不需要包含它:
注意:
复杂类型不应包含导航属性(以及 外键)