上下文:
public class EntityContext : DbContext
{
public EntityContext(DbContextOptions options) : base(options)
{
}
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
var cascadeTables = modelBuilder.Model.GetEntityTypes()
.SelectMany(foreignKeysTables => foreignKeysTables.GetForeignKeys())
.Where(foreignKeysTables => !foreignKeysTables.IsOwnership &&
foreignKeysTables.DeleteBehavior == DeleteBehavior.Cascade);
foreach (var table in cascadeTables)
{
table.DeleteBehavior = DeleteBehavior.Restrict;
}
base.OnModelCreating(modelBuilder);
}
DbSet<Account> Accounts { get; set; }
}
使用上下文保存到数据库中:
using (var context = new EntityContext()) //error on EntityContext()
{
context.Account.Add(acc); //error on Account because EntityContext can't be referenced
context.SaveChanges();
}
我无法引用上下文,因为有一个参数需要它(DbContextOptions选项),如何才能通过它,以便保存我的Account实例?
谢谢。
您可以使用依赖项注入(构造函数注入),如
public class YourClass {
private readonly EntityContext context;
public YourClass(EntityContext context) {
this.context = context;
}
public void YourMethod(){
context.Account.Add(acc);
context.SaveChanges();
}
}