小编c83*_*830的帖子

实体框架:如何在事务中放置多个存储过程?

我已经做了很多搜索,但找不到直接的anwser.

我有两个存储过程,它们都是导入到DBContext对象的函数

  1. INSERTA()
  2. InsertB()

我想把它们放在交易中.(即如果InsertB()失败,则回滚InsertA())

我怎么做?我可以只声明一个TransactionScope对象并包装两个存储过程吗?

谢谢

.net c# sql-server entity-framework entity-framework-4

9
推荐指数
1
解决办法
9001
查看次数

调用其他函数时减少if语句

我有一个函数从不同的对象调用许多其他函数.在调用下一个函数之前,每个函数都必须返回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)

c#

4
推荐指数
4
解决办法
551
查看次数

LINQ中IEnumable和IQueryable"Where"子句之间的区别

我对下面的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)

c# linq-to-entities entity-framework-4.1

2
推荐指数
1
解决办法
579
查看次数

有没有办法在VS2005中加载VS2010中编译的程序集?

我们在VS2005项目中有一个函数,它加载汇编并从中获取类型信息.但它并没有实例化这些类型.我们尝试加载2010年编译的一些组件,但不断得到以下异常.

"无法加载文件或程序集'2010ClassLibrary'或其依赖项之一.此程序集由比当前加载的运行时更新的运行时构建,无法加载."

反正有没有绕过这个?

.net c# reflection .net-4.0 .net-2.0

0
推荐指数
1
解决办法
416
查看次数