mvc - linq update multiple records
ActualizaciĆ³n usando LINQ to SQL (7)
¿Cómo puedo actualizar un registro contra una identificación específica en LINQ to SQL?
A falta de información más detallada:
using(var dbContext = new dbDataContext())
{
var data = dbContext.SomeTable.SingleOrDefault(row => row.id == requiredId);
if(data != null)
{
data.SomeField = newValue;
}
dbContext.SubmitChanges();
}
Actualizar
NorthwindDataContext db = new NorthwindDataContext();
Product product = db.Products.Single(p => p.ProductName == "Toy 1");
product.UnitPrice = 99;
product.UnitsInStock = 5;
db.SubmitChanges();
Insertar
Dim db As New NorthwindDataContext
'' Create New category and Products
Dim category As New Category
category.CategoryName = "Scott''s Toys"
Dim product1 As New Product
category.ProductName = "Toy 1"
Dim product2 As New Product
category.ProductName = "Toy 2"
Encontré una solución hace una semana. Puede usar comandos directos con " ExecuteCommand
":
MDataContext dc = new MDataContext();
var flag = (from f in dc.Flags
where f.Code == Code
select f).First();
_refresh = Convert.ToBoolean(flagRefresh.Value);
if (_refresh)
{
dc.ExecuteCommand("update Flags set value = 0 where code = {0}", Code);
}
En la instrucción ExecuteCommand
, puede enviar la consulta directamente, con el valor para el registro específico que desea actualizar.
value = 0 -> 0 es el nuevo valor para el registro;
code = {0} -> es el campo donde enviará el valor del filtro;
Código -> es el nuevo valor para el campo;
Espero que esta referencia ayude.
LINQ es una herramienta de consulta (Q = Query), por lo que no hay una forma LINQ mágica para actualizar solo la fila, excepto a través del contexto de datos (orientado a objetos) (en el caso de LINQ-to-SQL). Para actualizar los datos, debe extraerlos, actualizar el registro y enviar los cambios:
using(var ctx = new FooContext()) {
var obj = ctx.Bars.Single(x=>x.Id == id);
obj.SomeProp = 123;
ctx.SubmitChanges();
}
O escriba un SP que haga lo mismo en TSQL y exponga el SP a través del contexto de datos:
using(var ctx = new FooContext()) {
ctx.UpdateBar(id, 123);
}
DataClassesDataContext dc = new DataClassesDataContext();
FamilyDetail fd = dc.FamilyDetails.Single(p => p.UserId == 1);
fd.FatherName=txtFatherName.Text;
fd.FatherMobile=txtMobile.Text;
fd.FatherOccupation=txtFatherOccu.Text;
fd.MotherName=txtMotherName.Text;
fd.MotherOccupation=txtMotherOccu.Text;
fd.Phone=txtPhoneNo.Text;
fd.Address=txtAddress.Text;
fd.GuardianName=txtGardianName.Text;
dc.SubmitChanges();
AdventureWorksDataContext db = new AdventureWorksDataContext();
db.Log = Console.Out;
// Get hte first customer record
Customer c = from cust in db.Customers select cust where id = 5;
Console.WriteLine(c.CustomerType);
c.CustomerType = ''I'';
db.SubmitChanges(); // Save the changes away
public bool UpdateCustomerIno(CustomerInfo toUpdate)
{
bool successfullySaved = false;
var db = new DataClasses1DataContext();
try
{
var dbCstInfo = db.CustomerInfos
.Where(w => w.CustomerID == toUpdate.CustomerID)
.SingleOrDefault();
if (dbCstInfo != null)
{
dbCstInfo.FirstName = toUpdate.FirstName;
dbCstInfo.LastName = toUpdate.LastName;
db.SubmitChanges();
successfullySaved = true;
}
}
catch {
successfullySaved = false;
}
return successfullySaved;
}