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

时间:2014-10-16 13:27:07

标签: c# asp.net asp.net-mvc entity-framework dbcontext

这是来自my earlier question的回复问题。我的印象是,如果数据库中有多个表,则DbSet变量的名称将用于标识表。

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

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

2 个答案:

答案 0 :(得分:12)

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

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

按照惯例,该表以复数实体名称命名 因此,默认情况下,DbSet<Product>将存储/查找名为Products的表。

答案 1 :(得分:3)

看看System.ComponentModel.DataAnnotations.Schema.TableAttribute

具体做法是:

[Table("Portfolio")]
class Product
{

    public string Foo{get;set;}
}