自动属性:DBSet vs ObjectSet

时间:2012-04-18 17:57:54

标签: entity-framework dbcontext

为什么我们能够使用DBSet的自动属性,而不能使用ObjectSet

public class SomeContext : DbContext
{        
    public DbSet<Address> Addresses { get; set; }
             ...
}

谢谢

2 个答案:

答案 0 :(得分:10)

DbContext使用约定优于配置范例。它基于在DbContext派生类上定义的DbSet属性发现实体集(或者通常,它根据您的代码发现您的模型)。 ObjectContext不执行任何发现,也不基于约定。它只是从csdl,ssdl和msl工件中读取你的模型。因此,ObjectContext要求用户准确告知需要公开的内容。

答案 1 :(得分:4)

仅仅因为DbContext API是更新版本,可以提供简化的API以获得更好的开发体验。