我以前使用过委托人,所以我很熟悉他们的使用和好处。我也做了很多的阅读/研究,但是我正在试图绕过这一点,并且无处可去。我想使用委托(我相信)封装一些代码或在方法中使用委托来调用一些外部代码。关于c#委托人/方法的澄清
我在20个不同的地方使用相同的代码来封装事务中的实体框架更新。我想在一个地方的代码;然而,我不能单靠一种方法来完成,因为每一次都有一个中间部分会改变。我正在寻找一些关于如何最好地执行此操作的想法/说明(.net 3.5,ms sql 2010)。 - 日Thnx
代码示例:
void AddItem(string objDetails)
{
// setup method specific entity objects
SomeObject obj = new SomeObject { Details = objDetails };
//////// Begin transaction code that I would like to encapsulate ///////
bool success = false;
using (Entities data = new Entities())
{
for (int i = 0; i < s.BaseSettings.CommandRetries; i++)
{
using (TransactionScope transaction = new TransactionScope())
{
try
{
//////////////////////////////////////////////////////////////
///////// BEGIN Code that I would like to change/call different each time ////////
data.AddToSOMEOBJECTs(obj);
//////////////// END //////////////////////////////////
//// RETURN TO ENCAPSULATED CODE ////
data.SaveChanges(false);
transaction.Complete();
success = true;
break;
}
catch (Exception ex)
{
if (ex.GetType() != typeof(UpdateException))
{
throw new Exception("Unhandled db exception.");
}
}
}
}
if (success)
{
data.AcceptAllChanges();
}
else
{
throw new Exception();
}
}
}
我可能是盲目的,但如果是'了'界定? – Prescott
同样在你想改变的部分,你能展示你还可能喜欢它的其他部分吗? – Prescott
我想改变的部分将永远是框架中某个表的更新;然而,这些表格每次都会根据正在更新的内容而改变。我修复了代码引用。基本上,事务只是包装更新(每次都需要更改)。 – Adam