小编Dan*_*n H的帖子

在事务内打开和关闭数据库连接

我设计了框架的数据访问部分,以便每次业务对象(BO)需要与数据库交互时,都必须打开连接,调用数据访问层(执行查询),然后关闭连接.然后,如果需要在事务中运行,它将打开连接,开始事务,调用数据访问层(执行查询),然后提交事务,关闭事务,最后关闭连接.

我这样做的方式是"开放晚,早关闭" ...但是如果我需要调用其他BO在单个交易中提交数据怎么办?有没有更好的方法来处理打开和关闭连接以及处理事务?

我是设计应用程序架构的新手,所以我希望我不会错误地做这个......任何帮助都是值得赞赏的.

.net connection ado.net transactions

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

Dll不要复制到bin文件夹

我有一个Devart DLL没有被复制到我的web应用程序的bin文件夹的问题.我有一个引用projectA的web应用程序项目.ProjectA引用projectB.Devart Dlls在projectB中使用,并且在构建期间不会被复制到Web应用程序项目bin文件夹中.ProjectB还引用了EL Unity dll,它们正在被正确复制.所讨论的所有Dll都物理上位于projectB中的文件夹中,这是参考点的位置.(我没有指向GAC的引用)

正确复制的dll是Microsoft.Practices.Unity,Microsoft.Practices.Unity.Configuration和Microsoft.Practices.ServiceLocation.

未正确复制的dll是Devart.Data,Devart.Data.Oracle和Devart.Data.Oracle.Design.

这是每个dll的参考资料......

<Reference Include="Devart.Data, Version=5.0.124.0, Culture=neutral, PublicKeyToken=09af7300eec23701, processorArchitecture=MSIL">
  <HintPath>..\Dtn.PetroDex.Dal\ThirdPartyDlls\Devart.Data.dll</HintPath>
  <SpecificVersion>False</SpecificVersion>
  <Private>True</Private>
</Reference>
<Reference Include="Devart.Data.Oracle, Version=5.70.170.0, Culture=neutral, PublicKeyToken=09af7300eec23701, processorArchitecture=MSIL">
  <SpecificVersion>False</SpecificVersion>
  <HintPath>..\Dtn.PetroDex.Dal\ThirdPartyDlls\Devart.Data.Oracle.dll</HintPath>
  <Private>True</Private>
</Reference>
<Reference Include="Devart.Data.Oracle.Design, Version=5.70.170.0, Culture=neutral, PublicKeyToken=09af7300eec23701, processorArchitecture=MSIL">
  <SpecificVersion>False</SpecificVersion>
  <HintPath>..\Dtn.PetroDex.Dal\ThirdPartyDlls\Devart.Data.Oracle.Design.dll</HintPath>
  <Private>True</Private>
</Reference>
<Reference Include="Microsoft.Practices.ServiceLocation, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
  <HintPath>..\Dtn.PetroDex.Dal\ThirdPartyDlls\Microsoft.Practices.ServiceLocation.dll</HintPath>
  <SpecificVersion>False</SpecificVersion>
  <Private>True</Private>
</Reference>
<Reference Include="Microsoft.Practices.Unity, Version=2.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
  <HintPath>..\Dtn.PetroDex.Dal\ThirdPartyDlls\Microsoft.Practices.Unity.dll</HintPath>
  <SpecificVersion>False</SpecificVersion>
  <Private>True</Private>
</Reference>
<Reference Include="Microsoft.Practices.Unity.Configuration, Version=2.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
  <HintPath>..\Dtn.PetroDex.Dal\ThirdPartyDlls\Microsoft.Practices.Unity.Configuration.dll</HintPath>
  <SpecificVersion>False</SpecificVersion>
  <Private>True</Private>
</Reference>
Run Code Online (Sandbox Code Playgroud)

还有谁有相同的问题吗?我做错了吗?谢谢

编辑我打开了一个文件监视器,观察了visual studio加载引用的位置,对于Unity来说,它是从我指定的位置获取dll.但是,对于Devart dll来说,它正在寻找GAC!Devart dlls能以某种方式造成这种情况吗?

.net dll reference visual-studio

8
推荐指数
3
解决办法
2万
查看次数

Windows服务需要等待,Thread.Sleep?

我有一个ac #windows服务,需要每60秒执行一次数据库查询(或者在配置文件中设置任何间隔).我在while循环中使用Thread.sleep(60)来完成此任务.有一个更好的方法吗?

谢谢

.net c# windows service

6
推荐指数
2
解决办法
6751
查看次数

关闭连接前关闭阅读器

您是否应该在关闭连接之前关闭DataReader,还是可以关闭连接?只需关闭连接就可以有效地关闭读卡器?

(这是针对c#.net 3.5)

谢谢!

.net c# datareader

5
推荐指数
1
解决办法
3990
查看次数

使用陈述问题

我有两个问题.

1)您是否应始终在连接上使用using语句?那么,我会在连接上使用它,然后在连接中的读者上使用另一个?所以我将使用两个using语句.

2)假设您在连接上使用using语句,并且还在连接上返回读取器.所以你有两个使用语句.它会创建两个Try {} Finally {}块还是只创建一个?

谢谢!

.net c# using-statement

5
推荐指数
3
解决办法
591
查看次数

WCF serviceBehaviors与绑定设置

在WCF中,绑定设置maxConnections和ServiceBehaviors serviceThrottling设置(maxConcurrentCalls,maxConcurrentInstances,maxConcurrentSessions)之间的区别是什么?

我正在尝试设置我的WCF服务,但我不确定这些服务是如何相互配合来限制连接的.

wcf

5
推荐指数
1
解决办法
554
查看次数

终结器线程 ID

我们发现我们的一个 WCF 应用程序出现内存泄漏,我想知道是否有人可以为我澄清一些事情。我使用 windbg 运行了 !finalizequeue,它将每个堆集中的数千个对象显示为“准备好完成”。

Heap 0
generation 0 has 464 finalizable objects (0000000033877190->0000000033878010)
generation 1 has 52 finalizable objects (0000000033876ff0->0000000033877190)
generation 2 has 19958 finalizable objects (0000000033850040->0000000033876ff0)
Ready for finalization 228791 objects (0000000033878010->0000000033a36dc8)
------------------------------
Heap 1
generation 0 has 1508 finalizable objects (000000002ee2e168->000000002ee31088)
generation 1 has 91 finalizable objects (000000002ee2de90->000000002ee2e168)
generation 2 has 23498 finalizable objects (000000002ee00040->000000002ee2de90)
Ready for finalization 249421 objects (000000002ee31088->000000002f0182f0)
------------------------------
Heap 2
generation 0 has 66 finalizable objects (00000000292660d0->00000000292662e0)
generation 1 has 63 finalizable …
Run Code Online (Sandbox Code Playgroud)

.net c# clr windbg finalization

5
推荐指数
1
解决办法
420
查看次数

实体框架的通用存储库方法出错

我正在尝试创建一个通用方法在我的基类中用于我的存储库,我遇到了问题.这是方法......

        public virtual T First(System.Linq.Expressions.Expression<Func<T, bool>> where, List<string> properties)
    {
        IQueryable<T> query = null;
        if (where != null)
        {
            query = _context.CreateQuery<T>(String.Format("[{0}]", typeof(T).Name.ToString())).Where(where);
        }
        else
        {
            query = _context.CreateQuery<T>(String.Format("[{0}]", typeof(T).Name.ToString()));
        }

        foreach (string s in properties)
        {
            query = query.Include(s);
        }

        T _result = (T)query.First();

        return _result;
    }
Run Code Online (Sandbox Code Playgroud)

当我运行代码时,它给了我这个错误:

无法在当前范围或上下文中解决"公司"问题.确保所有引用的变量都在范围内,加载了所需的模式,并正确引用了名称空间.近似转义标识符,第1行,第1列.

我知道它为什么这样做,我只是不知道如何解决它.我认为它正在这样做,因为我的ObjectContext不知道对象"公司",但它确实知道"公司".有想法该怎么解决这个吗??

错误发生在这一行:

T _result =(T)query.First();

谢谢!

.net c# entity-framework

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