Context EntityState和List Items

时间:2013-11-21 20:20:41

标签: c# entity-framework-4

public partial class ClassCode
            {
                public long Id { get; set; }
                public long Id{ get; set; }
                public string CodeQualifier { get; set; }
                public string Code { get; set; }
                public Nullable<System.DateTime> Date { get; set; }
                public Nullable<System.DateTime> DateEnd { get; set; }
                public Nullable<decimal> Amount { get; set; }
               }


    List<ClassCode> ClassCodes = new List<ClassCode>();

 ClassCode cchc = new ClassCode();
cchc.Code ="0010";
cchc.CodeQualifier = "BF";
 ClassCode cchc1= new ClassCode();
cchc.Code ="0011";
cchc.CodeQualifier = "ABF";
ClassCodes.Add(cchc2); //Adding an item to the Collectionlist 
ClassCodes.Add(cchc1); //Adding an item to the list 

将项目添加到列表会将entitystate更改为Added。

var entityChangeList = _context.ChangeTracker.Entries().Where(p => p.State == EntityState.Added || p.State == EntityState.Deleted || p.State == EntityState.Modified);

ClassCodes.Remove(1);这应从列表中删除一个ClassCode项,并将entitystate更改为Delete。相反,它将状态更改为修改

两者都添加到列表并从列表集合中删除,并且应该设置EntityState = modified。 要么 将项添加到列表应为EntityState =已添加并从列表中删除项应为EntityState = Delete

这是预期的行为吗? 当我从列表中删除项目时,是否可以执行任何操作来更改要删除的状态。这将删除saveChanges上DB中的整行,而不是使用空值更新当前行。 我不想删除当时的实体。我只是删除实体

中的整行(条目)
  public partial class ParentClass
    {
   this.ClassCode= new ObservableListSource<ClassCode>();
}
public class Entities
{
 public DbSet<ParentClass> ParentClasses{ get; set; }

public DbSet ClassCodes {get;组; }     }

_context = new Entities();
_context.ParentClasses.Include(h=>h.ClassCode)

谢谢

0 个答案:

没有答案