Entity Framework中对应于Entity的代理类
来源:互联网 发布:峨眉山旅游 知乎 编辑:程序博客网 时间:2024/04/29 21:52
在使用Entity Framework的时候,发现_userService.GetUserById(int id)返回的对象并不是User, 而是类似于System.Data.Entity.DynamicProxies.Blog_5E43C6C196972BF0754973E48的一个代理类。其实,在很多ORM框架,如NHibernate中,都有这样一种机制,目的是方便延迟加载。所有能使用User的地方,都可以使用User的代理类,因为这个代理类是从User继承而来的。以下内容摘自MSDN,讲了如何禁用代理,如何显式的创建一个代理类等。
- public class BloggingContext : DbContext
- {
- public BloggingContext()
- {
- this.Configuration.ProxyCreationEnabled = false;
- }
- public DbSet<Blog> Blogs { get; set; }
- public DbSet<Post> Posts { get; set; }
- }
- using (var context = new BloggingContext())
- {
- var blog = context.Blogs.Create();
- }
- using (var context = new BloggingContext())
- {
- var admin = context.Users.Create<Administrator>();
- }
- using (var context = new BloggingContext())
- {
- var blog = context.Blogs.Find(1);
- var entityType = ObjectContext.GetObjectType(blog.GetType());
- }
对于ORM的延迟加载的简单原理,可以参考博客 NHIBERNATE延迟加载的原理与代理模式,简单的说,就是在实体的代理类中设置了一些额外的与每个属性对应的,用于标记每个属性状态的bool属性,当调用实体属性属性的get方法的时候,先查看状态是否是loaded,如果没有的话,此时再调用与数据库的连接来load记录。
- Entity Framework中对应于Entity的代理类
- Entity Framework中数据缓存的问题
- Entity FrameWork
- Entity Framework
- Entity Framework
- Entity FrameWork
- Entity Framework
- Entity Framework
- Entity Framework
- Entity Framework
- entity framework
- Entity Framework
- entity framework
- Entity Framework
- 免费的Entity Framework电子书
- 免费的Entity Framework电子书
- entity framework的数据访问
- Entity Framework的简单使用方法
- 不使用 Cookie 的“Cookie”技术
- Eclipse下maven项目大量红叉的解决方案
- iOS开发中常用的第三方库
- 通过 磁带机 备份 恢复数据 --201308
- C++ string的trim, split方法
- Entity Framework中对应于Entity的代理类
- 高德纳——我就是上帝
- 整数划分学习小记 Poj 1283 Moving Computer + Poj 1664 放苹果
- MySql错误代码1045的解决方案(忘记密码也可以用此方法)
- SQL中内连接和外连接
- Fibonacci数列
- android之自定义ViewGroup和自动换行的布局的实现
- centos6.4 安装源配置
- 简单实现Android图片翻转动画效果