gpt4 book ai didi

.net - 更新 EF 4 功能 CTP 4 分离的 POCO

转载 作者:行者123 更新时间:2023-12-04 17:58:39 25 4
gpt4 key购买 nike

我正在尝试使用 EF 4 CTP 4 更新分离的 POCO。

我的域类如下所示:

public class User {
public int Id { get; set; }

[Required, DisplayName("First Name")]
public string FirstName { get; set; }

[Required, DisplayName("Last Name")]
public string LastName { get; set; }

[ConcurrencyCheckAttribute, Timestamp]
public byte[] DataVersion { get; set; }
}

在存储库中,我有以下内容:
public void SaveUser(User user) {
if (user.Id > 0) {
dbContext.Users.Attach(user);
}
else {
dbContext.Users.Add(user);
}
dbContext.SaveChanges();
}

dbContext 继承自 DbContext。

我可以很好地插入,但附加不起作用。我运行 Sql Profiler,没有发送 sql 进行更新。

最佳答案

我想通了....

在 dbContext 类中,我添加了一个将实体标记为已修改的方法。

public void MarkAsModified(object entity) {
base.ObjectContext.ObjectStateManager.ChangeObjectState(entity, EntityState.Modified);
}

我的存储库方法现在看起来像这样
public void SaveUser(User user) {
if (user.Id > 0) {
dbContext.Users.Attach(user);
dbContext.MarkAsModified(user);
}
else {
dbContext.Users.Add(user);
}

dbContext.SaveChanges();
}

关于.net - 更新 EF 4 功能 CTP 4 分离的 POCO,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3425718/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com