星空网 > 软件开发 > ASP.net

Entity Framework的简单使用

公司的项目在用EF,最近抽时间研究了下,整理了一个比较公用的EF框架,供大家一起分享下。

EF这东东,用得好的话,确实方便了开发;用得不好的话,出了问题半天也找不出是什么原因。

现在就先介绍EF的简单使用。主要分为以下5个项目

Entity Framework的简单使用

EF.Core:数据实体

EF.Data:C#实体跟数据表直接的映射

EF.Service:数据服务

EFFramework:公共类库

EFSolution:测试项目

DbContext是EF比较重要的类,我们的数据库访问对象都必须继承该类。下面就是我们要用到的数据上下文:

Entity Framework的简单使用Entity Framework的简单使用
public class EFObjectContext : DbContext, IDbContext  {    public EFObjectContext(string nameOrConnectionString)      : base(nameOrConnectionString)    {      //((IObjectContextAdapter) this).ObjectContext.ContextOptions.LazyLoadingEnabled = true;    }    protected override void OnModelCreating(DbModelBuilder modelBuilder)    {      //dynamically load all configuration      //System.Type configType = typeof(LanguageMap);  //any of your configuration classes here      //var typesToRegister = Assembly.GetAssembly(configType).GetTypes()      string[] MapPath = { "EF.Data.dll" };      foreach (var path in MapPath)      {        var asm = Assembly.LoadFrom(path);        var typesToRegister = asm.GetTypes()        .Where(type => !String.IsNullOrEmpty(type.Namespace))        .Where(type => type.BaseType != null && type.BaseType.IsGenericType && type.BaseType.GetGenericTypeDefinition() == typeof(EntityTypeConfiguration<>));        foreach (var type in typesToRegister)        {          dynamic configurationInstance = Activator.CreateInstance(type);          modelBuilder.Configurations.Add(configurationInstance);        }      }      //...or do it manually below. For example,      //modelBuilder.Configurations.Add(new LanguageMap());      base.OnModelCreating(modelBuilder);    }}

View Code

OnModelCreating方法是应用程序在初始化时将实体跟数据表的映射加载到数据上下文。

1、定义实体

Entity Framework的简单使用Entity Framework的简单使用
  public class BlogUser:BaseEntity  {    public string Name { get; set; }    public int Age { get; set; }    public string Address { get; set; }  }

View Code

此处比较简单,不再废话。

2、定义映射

Entity Framework的简单使用Entity Framework的简单使用
public partial class BlogUserMap : EntityTypeConfiguration<BlogUser>  {    public BlogUserMap()    {      this.ToTable("BlogUser");      this.HasKey(c => c.Id);    }  }

View Code

定义实体跟数据表的映射,实体之间一对一、一对多、多对多的关系也在此处定义。

3、定义数据服务

Entity Framework的简单使用Entity Framework的简单使用
public interface IBlogUserService  {    IList<BlogUser> GetAllBlogUser();  }

View Code
Entity Framework的简单使用Entity Framework的简单使用
public class BlogUserService : IBlogUserService  {    private readonly IRepository<BlogUser> _blogUserRepository;    public BlogUserService(IRepository<BlogUser> blogUserRepository)    {      this._blogUserRepository = blogUserRepository;    }    public IList<BlogUser> GetAllBlogUser()    {      return _blogUserRepository.Table.ToList();    }  }

View Code

测试程序如下:

Entity Framework的简单使用Entity Framework的简单使用
static void Main(string[] args)    {      EngineContext.Initialize(false);      Console.WriteLine("初始化完成");      IBlogUserService service = EngineContext.Current.Resolve<IBlogUserService>();      IList<BlogUser> users = service.GetAllBlogUser();      Console.ReadKey();    }

View Code

这就是EF的简单使用。




原标题:Entity Framework的简单使用

关键词:

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。
相关文章
我的浏览记录
最新相关资讯
海外公司注册 | 跨境电商服务平台 | 深圳旅行社 | 东南亚物流