Entity Framework 4: Доступ к текущему текстовому тексту данных в частичном классе сущностей - PullRequest
8 голосов
/ 06 марта 2011

Я хочу расширить сущность EF в частичном классе с помощью методов и свойств.Я делал это довольно часто.Но теперь мне нужно будет объединить данные из этой сущности с данными из других сущностей.Поэтому мне нужно было бы получить доступ к объектному контексту сущностей (если он прикреплен) для выполнения этих запросов.Есть ли способ получить объектный контекст объекта из него?

Спасибо!

Ответы [ 2 ]

2 голосов
/ 21 июня 2012

Несмотря на то, что это не рекомендуется, и я сам не пользуюсь им (как сказал Ладислав: плохой дизайн), я наткнулся на решение:

http://blogs.msdn.com/b/alexj/archive/2009/06/08/tip-24-how-to-get-the-objectcontext-from-an-entity.aspx

Метод расширения:

public static ObjectContext GetContext( 
   this IEntityWithRelationships entity 
) 
{ 
    if (entity == null)  
       throw new ArgumentNullException("entity"); 

    var relationshipManager = entity.RelationshipManager; 

    var relatedEnd = relationshipManager.GetAllRelatedEnds() 
                                        .FirstOrDefault(); 

    if (relatedEnd == null)  
       throw new Exception("No relationships found"); 

    var query = relatedEnd.CreateSourceQuery() as ObjectQuery; 

    if (query == null)  
       throw new Exception("The Entity is Detached"); 

    return query.Context; 
}

внутри организации

var myContext = this.GetContext() as MyEntities;
2 голосов
/ 06 марта 2011

Не существует способа получить текущий ObjectContext от объекта.Сущности, основанные на классах EntityObject и прокси-серверах POCO, используют ObjecContext для внутреннего использования, но не раскрывают его.

Добавление такой отрешенности в ваши сущности считается плохим проектом, поэтому вам, возможно, следует объяснить, что вы пытаетесьсделать, и мы можем найти другое (лучшее) решение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...