EntityRef<T>.Entity的内部机制是如何实现的?
EntityRef<T>是一个struct。以下是通过反射得到的EntityRef<T>结构:
- C# code
// 摘要: // 为 LINQ to SQL 应用程序中的一对多关系的单一实例方提供延迟加载和关系维护。 // // 类型参数: // TEntity: // 目标实体的类型。 public struct EntityRef<TEntity> where TEntity : class { // // 摘要: // 通过引用目标实体初始化 System.Data.Linq.EntityRef<TEntity> 类的一个新实例。 // // 参数: // entityRef: // 目标实体。 public EntityRef(EntityRef<TEntity> entityRef); // // 摘要: // 通过指定源初始化 System.Data.Linq.EntityRef<TEntity> 类的一个新实例。 // // 参数: // source: // 引用源。 public EntityRef(IEnumerable<TEntity> source); // // 摘要: // 通过指定目标实体初始化 System.Data.Linq.EntityRef<TEntity> 类的一个新实例。 // // 参数: // entity: // 目标实体。 public EntityRef(TEntity entity); // 摘要: // 获取或设置目标实体。 // // 返回结果: // 目标实体。 public TEntity Entity { get; set; } // // 摘要: // 获取一个值,该值指示是否已加载或分配目标。 // // 返回结果: // 如果已加载或分配目标,则为 True。 public bool HasLoadedOrAssignedValue { get; } }
刚才在看EntityRef<T>与EntitySet<T>的关系,一下脑筋转不过这个弯了。
问题一:
在EntityRef<T>内部应该保存有一个对Entity对象的引用。如果单纯地返回这个引用值本身,那EntityRef<T>返回的就是引用的引用。因此需要一个Entity属性来转换成对Entity对象的引用。或者是其他什么机制?
问题二:
自己如何仿效EntityRef<T>,实现一个类似EntityRef<T>的类?
想了半天,没想通,可能钻进牛角尖了。
还请各位不吝赐教,在此先谢过了。
[解决办法]
在EntityRef<T>内确实要保存一个Entity对象。
不太明白你的问题,你是想问怎么获取对象与数据的映射吗?