[英]EF6 not saving changes to related properties
在我的应用程序中,我决定使用EF6而不是我习惯的SQL连接器。 问题在于我何时使用
public MainDatabase() : base("Database")
{
Configuration.AutoDetectChangesEnabled = false;
Configuration.ValidateOnSaveEnabled = false;
Configuration.LazyLoadingEnabled = true;
}
Model类是
public class Hotel : BaseModel
{
private City City = null;
private HotelCategory HotelCategory;
private string Name = string.Empty;
private string Tel = string.Empty;
}
在我的UnitOfWork中,我得到了一个帮助方法
internal void SetState(BaseModel entity, EntityState state)
{
_context.Entry(entity).State = state;
_context.SaveChanges()
}
它只保存对字符串的更改,而不保存相关属性的不同索引。
我在我的数据库中使用Code First
有没有办法更新相关属性的状态?
试过这个,但没有奏效
var entry = _context.Entry(entity);
entry.State = EntityState.Modified;
foreach (var name in entry.CurrentValues.PropertyNames)
{
entry.Property(name).IsModified = true;
}
使用UnitOfWork可能会导致您丢失范围。 因此,您必须在db上下文中包含实体对象
var entry = _context.Entry(entity);
if (entry.State == EntityState.Detached)
{
var dbset = _context.Set<EntityType>();
dbset.Attach(entity);
}
entry.state = EntityState.Modified;
_context.SaveChanges();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.