如何在实体框架中使用上下文

本文关键字:上下文 框架 实体 | 更新日期: 2023-09-27 18:33:56

我在MVC中以模型优先的方法制作了实体模型,我想知道如何插入,删除和修改数据。

我尝试使用

namespace EntityFrameworkModelFirst
{
    using System;
    using System.Data.Entity;
    using System.Data.Entity.Infrastructure;
    public partial class ModelFirstContainer : DbContext
    {
        public ModelFirstContainer()
            : base("name=ModelFirstContainer")
        {
        }
        protected override void OnModelCreating(DbModelBuilder modelBuilder)
        {
            throw new UnintentionalCodeFirstException();
        }
        public virtual DbSet<Department> DepartmentSet { get; set; }
        public virtual DbSet<Employee> EmployeeSet { get; set; }
    }
    using (var context = new ModelFirstContainer()) 
    {     
    // Perform data access using the context 
    }
}

但是,这对我来说是错误的。错误是:上下文单词"var"可能只出现在局部变量声明或脚本代码中,并且缺少;。现在有效吗?我在哪里可以这样做?哪些文件?

谢谢

如何在实体框架中使用上下文

你的使用块必须在方法中。您不能在方法之外使用它。另外,我已经删除了您的OnModelCreateing,这将引发异常。

using System;
using System.Data.Entity;
using System.Data.Entity.Infrastructure;
namespace EntityFrameworkModelFirst
{   
    public partial class ModelFirstContainer : DbContext
    {
        public ModelFirstContainer() : base("name=ModelFirstContainer")
        {
        }
        public virtual DbSet<Department> DepartmentSet { get; set; }
        public virtual DbSet<Employee> EmployeeSet { get; set; }
    }
    public class SomeClass
    {
        public void DoSomeStuff()
        {
             using (var context = new ModelFirstContainer()) 
             {     
                 // Perform data access using the context 
             }
        }
    }
}

using 块与 IDisposable 对象一起使用,以确保它们得到正确释放。 ModelFirstContainer继承自实现IDisposableDbContext

有关如何使用实体框架 DbContext 的教程可在此处找到:使用 DbContext

    public class ProductContext : DbContext 
{ 
    public DbSet<Category> Categories { get; set; } 
    public DbSet<Product> Products { get; set; } 
}
using (var context = new ProductContext()) 
{     
    // Perform data access using the context 
}