小编amo*_*oss的帖子

T4模板中的评论

这看起来像是一个基本问题,但我无法找到答案的MSDN文章或StackOverflow问题:是否可以在T4模板中进行行注释或阻止注释?我不打算生成带注释的代码(这很容易和直接),而是注释掉我的T4标记块.那可能吗?

t4 comments

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

死锁与实体框架 - 如何重新运行交易?

这里遇到了一些困难的情况:我们的系统偶尔会出现死锁.而且我根本没有强大的数据库并发背景.

System.Data.SqlClient.SqlException: Transaction (Process ID 69) was deadlocked on
lock resources with another process and has been chosen as the deadlock victim.
Rerun the transaction.
Run Code Online (Sandbox Code Playgroud)

有几个应用程序访问数据库:使用Entity Framework访问数据库的主要MVC应用程序和几个简单的控制台应用程序,每个应用程序使用ADO.NET和原始SQL查询数据库,并通过BinaryTap ActiveRecord插入数据.

不幸的是,我是客户组织的FNG,所以我无法部署和测试新想法.此外,我们正在使用SSMS Express,因此我无法访问SQL事件探查器.但是我立即解决问题并不重要,更重要的是我记录了我对问题的分析.

当它说我应该重新运行事务时,错误消息是否有任何真相?这是我们的DaoBase - 我们每个HttpContext使用一个ObjectContext(通过Db属性).我们总是将我们的Dao更新(但不是查询)放在SafeAction中,以便它们包含在事务中.我试图正确地重新运行交易吗?

public abstract class DaoBase
{
    protected static CaseMateEntities Db
    {
        get
        {
            return ContextHelper<CaseMateEntities>.GetCurrentContext();
        }
    }


    protected static void SafeAction(Action<ObjectContext> action)
    {
        Exception exception = null;

        try {
            using (var scope = new TransactionScope()) {
                try {
                    if (Db.Connection.State != ConnectionState.Open)
                        Db.Connection.Open();

                    if (action != null)
                        action(Db); …
Run Code Online (Sandbox Code Playgroud)

entity-framework transactionscope database-deadlocks

3
推荐指数
1
解决办法
8842
查看次数