我编写了此函数,以便使用POCOs类将数据保存到EF4:
public void Guardar(Pedidos myPedido)
{
using (var context = new OhmioEntities())
{
if (myPedido.ID_Pedido == 0)
{
context.Pedidos.AddObject(myPedido);
}
else
{
context.Pedidos.Attach(myPedido);
context.ObjectStateManager.ChangeObjectState(myPedido, System.Data.EntityState.Modified);
}
context.SaveChanges();
}
}
现在,我想以通用的方式在基类上编写此代码。有没有一种方法可以决定是否需要在不使用ID的情况下进行UPDATE或INSERT?(在这种情况下为ID_Pedido),因为键字段上的名称随每种对象类型而变化。其余代码是通用的。我正在训练要知道我是否需要使用AddObject(新)或Attach(存在)。谢谢!
我自己找到了!如果有人遇到相同的问题,这是解决方案。我写了这个方法:
public string getKey<T>() where T :new()
{
T _obj = new T();
return context.CreateEntityKey(_obj.ToString().Split('.')[2], _obj).EntityKeyValues[0].Key;
}
Wich返回对象的第一个主键(在我的情况下就足够了)
并像这样使用它:
string sKey = getKey<GruposComerciales>();
现在,我可以在我的存储库中编写一个通用的saveorupdate方法。谢谢!!!
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句