Я пытаюсь обновить данные в моем объектном наборе EntityFramework, но я получаю следующую ошибку: Уже есть открытый DataReader, связанный с этой командой, который должен быть закрыт первым.
Итак, у меня есть ObjectContextкоторый возвращает мне ObjectSet клиентов.Этот список клиентов я втыкаю в сетку.Ниже приведен фрагмент моего метода:
public class CustomerEntity : SECValidation.SECEntity
{
ObjectSet<Customer> objectCustomer;
public override void InitialiseObject()
{
objectCustomer = myObjectContext.CreateObjectSet<Customer>("Customers");
objectCustomer.MergeOption = MergeOption.OverwriteChanges;
}
public override List<T> SelectRecords<T>()
{
return (from custDetails in objectCustomer.Include("Owner_Lookup")
.Include("Business_Type_Lookup").Include("Assets").Include("Client")
select custDetails).Cast<T>().ToList();
}
public override T SelectRecordByUNID<T>(int UN_ID)
{
return (from custDetails in objectCustomer.Include("Owner_Lookup").Include("Business_Type_Lookup").Include("Assets").Include("Client")
where custDetails.UN_Customer == UN_ID
select custDetails).Cast<T>().SingleOrDefault();
}
}
Поэтому я создаю экземпляр моего класса CustomerEntity и вызываю InitialiseObject ().После этого я вызываю SelectRecords (), который предоставляет результаты для моей сетки.
У меня есть код измененного события SelectedIndex в сетке, который вызывает метод SelectRecordByUNID, передавая идентификатор клиента выбранной строки.При этом выбирается запись о клиенте, которая используется в другом месте.
Теперь, если кто-то обновит данные в другом месте (другой экземпляр приложения), я бы хотел обновить объект objectCustomer, чтобы увидеть эти изменения.
ОднакоМетод SelectRecords работает нормально, но когда вызывается метод SelectRecordByUNID, он завершается с ошибкой, о которой я упоминал выше.Ошибка говорит о том, что есть связанный DataReader, уже открытый с этой командой и закрывающий ее.Как можно обойти это, не закрывая Data Reader, поскольку открываются другие данные, связанные с источником данных в сетке клиента?
Я использую myObjectContext для создания набора объектов также для различных объектов.
Я использую c # и .Net4.0
Помогите мне, пожалуйста, и я надеюсь, что это имеет смысл!?!
Спасибо.