Недопустимая исключительная операция была обработана - PullRequest
1 голос
/ 19 августа 2011

Я пытаюсь удалить запись из сущности

получена ошибка: исключение недопустимой операции Невозможно удалить объект, поскольку он не был найден в ObjectStateManager.

и код такой ...


private void btnProdDelete_Click(object sender, EventArgs e){
    Image image = pictureBox1.Image;
    byte[] bit = null;</p>

<pre><code>bit = imageToByteArray(image);

//var c = new category {
//  category_Name = tbCategoryName.Text,
//  category_Description = tbCategoryDescription.Text
//};

product pd = new product();
pd.product_Id = productid;
pd.product_Name = tbProductName.Text;
decimal price = Convert.ToDecimal(tbProductPrice.Text);
pd.product_Price = price;
pd.product_Description = tbProductdescription.Text;
pd.product_Image = bit;

tsgentity.DeleteObject(pd);
this.Close();

} Может ли кто-нибудь помочь с этим ...

Модифицированный код :


public partial class ProductDescriptionForm : Form {
    public TsgEntities tsgentity;
    public ProductDescriptionForm() {
        InitializeComponent();
        tsgentity = new TSGEntities();
    }

1 Ответ

2 голосов
/ 19 августа 2011

Проблема в том, что вы пытаетесь удалить объект, который не отслеживается контекстом.

Правильный способ удаления без выборки - создать экземпляр (фактически нужен только идентификатор), присоединить его к контексту и затем удалить:

var pd = 
    new product() 
    {
        product_Id = productid,
        EntityKey = new EntityKey("product.id", "id", productid)
    };
tsgentity.Attach(pd);
tsgentity.DeleteObject(pd);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...