Я хочу обновить сразу несколько записей в таблице.Обновление нескольких строк в таблице сразу с использованием linq
Так что я таблица, как показано ниже
погрузкой 30 редактора как Field_Value_EN
и Field_Value_AR
на одну Product_ID
как ниже
они актуальны модели класс эс
AB_Product_vs_Field модель класс
public partial class AB_Product_vs_Field
{
public string Product_ID { get; set; }
public string Field_ID { get; set; }
public string Field_Value_EN { get; set; }
public string Field_Value_AR { get; set; }
}
ProductEdit модель класс
public class ProductEdit
{
public string Product_ID { get; set; }
public string ProductTypeID { get; set; }
public string ProductCategoryID { get; set; }
public string Subsidary_ID { get; set; }
public string Field_ID { get; set; }
public string ProductFieldNameEn { get; set; }
public string ProductFieldNameAr { get; set; }
public string ApprovalStatus { get; set; }
public string Status { get; set; }
public IList<AB_Product_vs_Field> ListProductFields { get; set; }
public IList<AB_ProductTypeCategoryField> ListProductLables { get; set; }
}
После того, как я представить детали, которые я хочу, чтобы обновить всю соответствующую ему строку AB_Product_vs_Field
таблицы.
Например: позволяет сказать, что я обновляю PRODUCT_ID = 10 записи, ее необходимо обновить все строки relavant к PRODUCT_ID = 10
Таким образом, я создал свой Linq запрос, как этот
[HttpPost]
[ValidateInput(false)]
public ActionResult Product_Edit(ProductEdit product)
{
AB_Product_vs_Field insertproductvalue = new AB_Product_vs_Field();
var user = db.AspNetUsers.Find(User.Identity.GetUserId());
if (ModelState.IsValid)
{
var listInsertproductvalue = new List<AB_Product_vs_Field>();
for (int i = 0; i < product.ListProductFields.Count; i++)
{
listInsertproductvalue.Add(new AB_Product_vs_Field
{
Product_ID = product.Product_ID,
Field_ID = product.ListProductFields[i].Field_ID,
Field_Value_EN = product.ListProductFields[i].Field_Value_EN,
Field_Value_AR = product.ListProductFields[i].Field_Value_AR
});
};
db.Entry(listInsertproductvalue).State = System.Data.Entity.EntityState.Modified;
db.SaveChanges();
но здесь я получаю следующую ошибку в: db.Entry(listInsertproductvalue).State = System.Data.Entity.EntityState.Modified;
линия
Тип объекта Список `1 не является частью модели для текущего контекста .
EDIT
тогда я изменил LINQ запрос, как этот
AB_Product_vs_Field insertproductvalue = new AB_Product_vs_Field();
if (ModelState.IsValid)
{
for (int i = 0; i < product.ListProductFields.Count; i++)
{
insertproductvalue.Field_ID = product.Product_ID;
insertproductvalue.Product_ID = product.ListProductFields[i].Field_ID;
insertproductvalue.Field_Value_EN = product.ListProductFields[i].Field_Value_EN;
insertproductvalue.Field_Value_AR = product.ListProductFields[i].Field_Value_AR;
};
db.Entry(insertproductvalue).State = System.Data.Entity.EntityState.Modified;
db.SaveChanges();
но затем получить следующую ошибку
обновление магазина, вставки или удаления заявления пострадавших неожиданный Число строк (0). Объекты могут быть изменены или удалены с момента загрузки объектов.
я думаю db.Entry ожидает один объект не список – MstfAsan
так, то как преобразовать это в список – kez
Вы должны указать. Государственная ценность? –