如何指定DbContext使用的表的名称

这是我之前提出的问题的后续问题 。 我的印象是,如果数据库中有多个表,则将使用DbSet变量的名称来标识该表。

然而,在链接的问题中,很明显DbContext正在选择Products表而不是Portfolio表,即使变量的名称是Portfolio 。 我仍然可以将变量名称更改为任何内容,我仍然可以获取数据。

所以我的问题是DbContext如何映射表? 我需要在项目中添加更多的表,并且不知道如何使用单个DbContext对象(或者我应该在同一个数据库中为单独的表使用单独的DbContext )?

您可以在实体上执行以下操作:

 [Table("Portfolio")] public class Product { /* ... */ } 

按照惯例,表以多个实体名称命名。
因此,默认情况下, DbSet将存储/查找名为Products的表。

看看System.ComponentModel.DataAnnotations.Schema.TableAttribute

特别:

 [Table("Portfolio")] class Product { public string Foo{get;set;} }