-, call context.AttachTo(typeof (T).Name, entity) , InvalidOperationException. ObjectContext.AttachTo :
public void AttachTo(string entitySetName, Object entity)
, EntitySet, Entity. , EntitySet MetadataWorkspace, Entity. .
, 3 , EntityB EntityC EntityCollections, , LoadProperty, LoadProperty , :
using System.Data.Metadata.Edm;
public virtual List<T> LoadProperty(List<T> entities, string property) {
using (TrialsContext context = new TrialsContext()) {
EntityContainer container = context.MetadataWorkspace
.GetEntityContainer(context.DefaultContainerName,
DataSpace.CSpace);
EntitySetBase entitySet = container.BaseEntitySets
.Where(item =>
item.ElementType.Name.Equals(typeof(T).Name))
.FirstOrDefault();
foreach (T entity in entities) {
context.AttachTo(entitySet.Name, entity);
context.LoadProperty(entity, property);
}
return entities;
}
:
// To load EntityA Nav property:
LoadProperty(entityB, "EntityA");
// To Load EntityC Nav property:
//Let assume the nav property name for EntityC on EntityB is EntityCList
LoadProperty(entityB, "EntityCList");
, .