public DbSet<Lecture> Lectures{ get; set; }
这里的属性名称重要吗?看来如果我想用模型的话,我就用“Lecture”。生成的表只是 <>
中任何内容的复数形式。 ,例如,如果我理解正确,我可以将“Lectures”更改为“Leprechauns”,并且我的 table 仍将根据 <Lecture>
被称为“Lectures”我将使用 context.Lectures
从中进行选择。属性名称有什么意义吗?
我在这个tutorial中没有找到答案或在 msdn 上。
编辑:经过进一步测试 - 数据库表名称基于尖括号中的模型名称,但要实际从数据库中进行选择(在 C# 代码中),您可以使用 DbSet propertyName 中指定的属性名称。还是想听听具体是如何运作的。
最佳答案
Entity Framework 构建数据库模型,其中每个类/模型代表一个 entity type ,每个 DbSet
代表一组单一类型的实体。当您在 DbSet<T>
中声明 DbContext
属性时,这会告诉 EF 将类型 T
的类包含为实体类型之一,并且它还会自动在对象图中包含任何其他连接类型(例如导航属性)。
综上所述,属性本身的名称可能并不重要。事实上,您也可以使用 Fluent API 添加实体类型,而不是声明任何 DbSet
属性(如果您愿意),在这种情况下,您可以使用 context.Set<T>
来检索 DbSet
。这些属性实际上只是为了方便。
也许这也有帮助: https://msdn.microsoft.com/en-us/data/jj592675.aspx
关于entity-framework - 任何指向 DbSet 属性名称的信息吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32314456/