我有这段代码,但它不起作用,我看不出问题在哪里。
没有例外。
我正在使用Entity Framework 4. SaveChanges
调用似乎没有在数据库中执行任何操作。
try
{
Demande_Rage_Animale editdemande = DemandeRageAnimaleDAO.First(s => s.ID == demandebean.ID);
//frombeanTodemande(demandebean, editdemande);
editdemande.num_rapport = "111111";
//editdemande.EntityState.
DemandeRageAnimaleDAO.SaveChanges();
}
catch (Exception ex)
{
Logger.Error("==> Modifier_demande_RageAnimale : " + ex.InnerException);
}
答案 0 :(得分:7)
在调用SaveChanges之前,您必须将实体标记为已修改:
DemandeRageAnimaleDAO.ObjectStateManager.ChangeObjectState(editdemande, System.Data.EntityState.Modified);
在旧版本的Entity Framework中,您可以使用:
var editdemande = DemandeRageAnimaleDAO.First(s => s.ID == demandebean.ID);
// whatever happens here?
DemandeRageAnimaleDAO.Demande_Rage_Animale.Attach(editdemande);
editdemande.num_rapport = "111111";
DemandeRageAnimaleDAO.ObjectStateManager.ChangeObjectState(editdemande, System.Data.EntityState.Modified);
DemandeRageAnimaleDAO.SaveChanges();
问题中显示的方法可能不是完整的图片,也许实体已经脱离了。在这种情况下,您可以将其附加回上下文,将其标记为已修改并调用SaveChanges:
// Install the Java helper library from twilio.com/docs/java/install
import com.twilio.Twilio;
import com.twilio.rest.api.v2010.account.Message;
import com.twilio.type.PhoneNumber;
import java.net.URISyntaxException;
public class SmsSender {
// Find your Account Sid and Auth Token at twilio.com/console
public static final String ACCOUNT_SID = "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";
public static final String AUTH_TOKEN = "your_auth_token";
public static void main(String[] args) throws URISyntaxException {
Twilio.init(ACCOUNT_SID, AUTH_TOKEN);
Message message = Message
.creator(new PhoneNumber("+14159352345"), // to
new PhoneNumber("+14158141829"), // from
"Where's Wallace?")
.create();
}
答案 1 :(得分:1)
对象上下文必须知道将更改保存回数据源的对象的状态.ObjectStateEntry对象存储EntityState信息。 ObjectContext的SaveChanges方法处理附加到上下文的实体,并根据每个对象的EntityState更新数据源。有关更多信息,请参阅创建,添加,修改和删除对象。
在使用EF 4.0的情况下,您需要调用此
_yourContext.ObjectStateManager.ChangeObjectState(editdemande, System.Data.EntityState.Modified);
4.1版本就像
一样_yourContext.Entry(editdemande).State = System.Data.EntityState.Modified;