2014-11-06 159 views
2

我们可以使用DbContext而不在项目中添加EDMX用于数据模型这里是我尝试使用ContextManagerDbContext)帮助保存Instance类对象的示例代码。如何在C#中不使用Edmx的情况下使用DbContext?

using System; 
using System.Collections.Generic; 
using System.Data.Entity; 
using System.Data.Entity.Core.Objects.DataClasses; 
using System.Linq; 
using System.Text; 

namespace DbContext_test 
{ 
    public class ContextManager : DbContext 
    { 
     public ContextManager(string connstring) 
      : base(connstring) 
     { 
     } 

     public override int SaveChanges() 
     { 
      //TODO: Write code before saving dataEntity object or fire some event to do so. 
      return base.SaveChanges(); 
     } 
    } 

    public class Instances : EntityObject 
    { 
     public int ID { get; set; } 
     public string InstanceCode { get; set; } 
     public string InstanceName { get; set; } 
    } 

    public class InstanceManager 
    { 
     readonly string ConnectionString; 

     public InstanceManager(string connString) 
     { 
      ConnectionString = connString; 
     } 
     public void SaveInstance(int id, string instanceCode, string instanceName) 
     { 
      SaveInstanceInternal(new Instances { ID = id, InstanceCode = instanceCode, InstanceName = instanceName }); 
     } 

     public void SaveInstance(Instances instance) 
     { 
      SaveInstanceInternal(instance); 
     } 

     private void SaveInstanceInternal(Instances instance) 
     { 
      var contextManager = new ContextManager(ConnectionString); 

      contextManager.Entry(instance); 
      contextManager.SaveChanges(); 
     } 
    } 
} 

回答

4

按照此

1)创建上下文类

public class SchoolPlusDBContext : DbContext 
{ 
    public SchoolPlusDBContext() 
     : base("name=SchoolPlusDBContext") 
    { 

    } 


    public DbSet<CategoryMaster> CategoryMaster { get; set; } 
    protected override void OnModelCreating(DbModelBuilder modelBuilder) 
    { 
     modelBuilder.Conventions.Remove<PluralizingTableNameConvention>(); 
     base.OnModelCreating(modelBuilder); 
    } 

} 

2)创建类

public class CategoryMaster 
{ 
    [Key] 
    public long CategoryID { get; set; } 
    [Required] 
    public string CategoryName { get; set; } 
    [Required] 
    public string CategoryType { get; set; } 

} 

3)DA对于查询执行

public class CategoryDA 
{ 

    SchoolPlusDBContext dbContext = new SchoolPlusDBContext(); 

    public List<CategoryMaster> GetAllCategory() 
    { 
     return dbContext.CategoryMaster.OrderByDescending(t => t.CategoryID).ToList(); 
    } 

    public bool AddCategory(CategoryMaster master,string UserName) 
    { 
     try 
     { 
      master.CreatedBy = UserName; 
      master.CreatedOn = System.DateTime.Now; 

      dbContext.CategoryMaster.Add(master); 
      dbContext.SaveChanges(); 
     } 
     catch 
     { 
      return false; 
     } 
     return true; 
    } 


} 

}

相关问题