[英]Entity Framework Code First NullReferenceException when adding to a dbset of class that contains a list
[英]Entity Framework code first adding DbSet property
我刚刚开始使用 Entity Framework 6.1.2。 我正在使用代码优先迁移。 我在数据库中有大约 78 个实体。 我的问题是有什么方法可以使 DatabaseContext 类中的 DbSet 属性通用,这样我就不必定义所有 78 个属性? 例如
public class DatabseDbContext : DbContext
{
public DbSet<Users> Users { get; set; }
public DbSet<Roles> Roles { get; set; }
public DbSet<Models> Models { get; set; }
public DbSet<Rights> Rights { get; set; }
}
我不想制作所有这些属性。 相反,我想要一个通用属性或函数来返回相应类型的 DbSet。 提前致谢!
是的你可以。 但你真的不应该。
您可以在OnModelCreating
注册实体类型而无需DbSet<T>
。 例如:
class Db : DbContext
{
public Db(string constr) : base(constr) { }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
var entityTypes = Assembly.GetExecutingAssembly()
.GetTypes()
.Where(t => t.Namespace == "MyApp.Entities");
foreach (var entityType in entityTypes)
{
modelBuilder.RegisterEntityType(entityType);
}
base.OnModelCreating(modelBuilder);
}
}
但是您始终必须通过DbContext.Set访问实体。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.