我已经做了很多搜索,但找不到直接的anwser.
我有两个存储过程,它们都是导入到DBContext对象的函数
我想把它们放在交易中.(即如果InsertB()失败,则回滚InsertA())
我怎么做?我可以只声明一个TransactionScope对象并包装两个存储过程吗?
谢谢
我有一个函数从不同的对象调用许多其他函数.在调用下一个函数之前,每个函数都必须返回true.正如您所看到的,我使用了太多if语句.如何改进代码并使其更整洁?谢谢
bool ISOKToDoSomthing()
{
boo retVal = false;
retVal = ObjA.CheckVersion(oldVersion);
if(retVal)
{
retVal = objB.CheckUserRight();
}
if(retVal)
{
retVal = ObjC.ISDBExist();
}
if(retVal)
{
retVal = OjbD.ISServerUp(ServerName);
}
//tons of similar code as above
.........
return retVal;
}
Run Code Online (Sandbox Code Playgroud) 我对下面的FindBy和FindByExp函数的底层机制有点困惑.我知道FindyByExp将在数据库端执行谓词.但是FindBy函数怎么样?它是否从数据库获取所有对象并首先将它们加载到内存中,然后执行谓词?
public IQueryable<T> FindBy(Func<T, bool> predicate)
{
return context.Get<T>().Where(predicate).AsQueryable<T>();
}
public IQueryable<T> FindByExp(Expression<Func<T, bool>> predicate)
{
return context.Get<T>().Where(predicate).AsQueryable<T>();
}
Run Code Online (Sandbox Code Playgroud) 我们在VS2005项目中有一个函数,它加载汇编并从中获取类型信息.但它并没有实例化这些类型.我们尝试加载2010年编译的一些组件,但不断得到以下异常.
"无法加载文件或程序集'2010ClassLibrary'或其依赖项之一.此程序集由比当前加载的运行时更新的运行时构建,无法加载."
反正有没有绕过这个?