public DbSet<Lecture> Lectures{ get; set; }
这里的物业名称是否重要?似乎如果我想使用该模型,我会使用&#34; Lecture&#34;。生成的表格只是<>
中的复数形式,例如,如果我理解正确,我可以更改&#34;讲座&#34;到&#34; Leprechauns&#34;我的桌子仍然会被叫做#34; Lectures&#34;基于<Lecture>
,我将使用context.Lectures
从中进行选择。财产名称有什么意义吗?
我在tutorial或msdn上找不到答案。
编辑:进一步测试时 - db表名称基于尖括号中的模型名称,但要实际从db中选择(在C#代码中),则使用DbSet propertyName中指定的属性名称。仍然想知道这是如何工作的细节。
答案 0 :(得分:2)
实体框架构建数据库模型,其中每个类/模型代表entity type,每个DbSet
代表一组单一类型的实体。当您在DbSet<T>
中声明DbContext
属性时,会告知EF将类型T
的类包含为实体类型之一,并且它会自动包含任何其他连接类型(例如导航)对象图中的属性)。
所有这一切都说,物业本身的名称可能并不重要。实际上,您也可以使用Fluent API添加实体类型,如果需要,不要声明任何DbSet
属性,在这种情况下,您可以使用context.Set<T>
来检索{{1 }}秒。这些物业真的只是为了方便。
也许这也很有用: https://msdn.microsoft.com/en-us/data/jj592675.aspx
答案 1 :(得分:0)
DbSet
对应于数据库中的表格或视图,因此您将使用DbSet
来访问,创建,更新,删除和修改表格数据。
顺便说一句,你可以删除约定:
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
}