如何在Entity Framework中使用上下文?

时间:2016-02-08 20:50:01

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

我在模型第一种方法中使用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 
    }

}

但是,它给我带来了错误。错误是:上下文单词&#39; var&#39;可能只出现在局部变量声明或脚本代码中,并且缺失; 它现在有效吗?我在哪里可以做到这一点?哪个文件?

谢谢

2 个答案:

答案 0 :(得分:1)

您的使用区块必须是方法。你不能在方法之外拥有它。此外,我已经删除了你的OnModelCreating,它会引发异常。

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 blockIDisposable个对象一起使用,以确保它们得到妥善处理。 ModelFirstContainer继承自实现DbContext的{​​{1}}。

答案 1 :(得分:0)

有关如何使用Entity Framework DbContext的教程,请访问:Working with 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 
}