我创建了一个简单的框架,使用MVVM为我的应用程序执行CRUD,如下所示(对于add方法):
public int Add<TEntity>(TEntity entity) where TEntity : class
{
if (entity == null)
{
throw new ArgumentNullException("entity");
}
string entityName = GetEntityName<TEntity>();
var fqen = GetEntityName<TEntity>();
object originalItem;
EntityKey key = ObjectContext.CreateEntityKey(fqen, entity);
if (ObjectContext.TryGetObjectByKey(key, out originalItem)) return 0;
ObjectContext.AddObject(entityName, entity);
int r = ObjectContext.SaveChanges();
return r;
}
//和上下文
private ObjectContext ObjectContext
{
get
{
return GlobalContext.MainObjectContext;
}
}
//和Singltone
public static S_Entities MainObjectContext
{
get
{
return Singleton.Instance();
}
}
在ViewModel中,Save()实现如下:
public void SaveItem()
{
storeReceiptBusiness.Insert(CurrentItem);
Items.Add(CurrentItem);}
问题是当调用Save()时,CurrentItem将按预期插入,但最后添加的实体的currentItem和当前ViewModel的CurrentItem将被添加! 我需要放弃旧的更改,只添加当前值。 希望很清楚。 非常感谢。