2009-01-09 20 views
9

Bir ASP.NET MVC web sitesinde LINQ to SQL ile veritabanı tablomdan nesneleri (kayıtları) görüntüleyebilirim.Nesnemi, veritabanına LINQ to SQL veritabanına nasıl geri kaydederim?

Şimdi yeni bir nesne oluşturmak ve veritabanına geri kaydetmek istiyorum.

var dataContext = new MessageDataContext(); 
    Message message = new Message(); 
    message.Action = "save"; 
    message.Body = "record"; 
    message.Parameter = "234"; 

Ve şimdi ben böyle bir şeyle KAYDET istiyorum: Benim Kontrolör olarak

, bunu

message.Save(); 

Veya belki:

dataContext.SubmitChanges(message); 

Ancak ne bu işlerin yeni nesneler eklemek ve bunları veritabanına kaydetmek

  • :

    sözdizimi burada nedir?

  • Mevcut nesneler üzerinde değişiklikler yapın ve bunları veritabanına kaydedin.

cevap

26

Ne aradığınız geçerli:

dataContext.Messages.InsertOnSubmit(message); 
dataContext.SubmitChanges(); 

Bir Messages tablo SQL DBML için LINQ içine eşlenen var varsayarsak.

+0

Sorunumla ilgili bir yardım alabilir miyim lütfen? [burada bağlantı] (http://stackoverflow.com/questions/12761598/linq-to-sql-updates-datacontext-but-not-the-database) – Jed

+1

@Jed - sadece buraya geldim ve bu çözüldü :) – Kev

+0

aynı eylem dataContext.Messages.Attach (mesaj) tarafından gerçekleştirmek için supposet değil ??? – balanza

9

yeni nesneler eklemek için sadece yapın:

dbContext.Messages.InsertOnSubmit(message); 
dbContext.SubmitChanges(); 

önceden yüklenmiş kuruluşlara herhangi bir değişiklik sadece bunu yaparsanız:

dbContext.SubmitChanges(); 

size gereken herhangi değiştirilen varlık göndermek istemiyorsanız yapmak:

dbContext.Refresh(RefreshMode.OverwriteCurrentValues, message);