entity-framework - 任何指向 DbSet 属性名称的信息吗?

标签 entity-framework

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/

相关文章:

c# - LINQ to 实体慢查询

c# - 包含循环,如果引用跟踪被禁用,则无法序列化,json.net 和 webapi

.net - 使用 Entity Framework 代码优先我是否需要拥有我的域贫血模型?

mysql - 如何限制实体属性值中的属性名称?

c# - 在 c# 控制台应用程序中启动 2 个 DBContext 对象,一个用于日志,另一个用于业务数据

c# - EF 中的 SQL Server 校验和

c# - 在 EF 中使用基本类型列表

c# - 显示原始值 Entity Framework 7

c# - 如何将 Linq.ParallelQuery 转换为 Linq.IQueryable

asp.net-mvc - 将 EF 4.1 代码优先 ASP.NET MVC3 部署到中等信任共享主机