1

我的域库中有以下功能设置:

    public void SetProcessFlag<T>(bool flag)
    {
        string tableName = typeof(T).ToString().Replace("MyBase.Core.Domain.", "");

        string sql = string.Concat("update ", tableName, " set ImportProcessed = '" , (flag?"1":"0"), "';");
        Framework.FluentSessionManager.GetSession()
            .CreateSQLQuery(sql)
            .ExecuteUpdate();
    }

我有一个“目录”模式和“零件”表的映射。它包含一个映射列“ImportProcessed”作为 Bool。

现在,当我想将“ImportProcesses”列设置为 true 时,我调用的是这样的:

new Parts().SetProcessFlag<Parts>(true);

这工作得很好。我不喜欢假设记录集声明的文件夹与架构具有相同的名称。

是否可以做同样的事情?:

Framework.FluentSessionManager.GetSession()
.CreateCriteria(typeof(T))
....

甚至更优雅的方法?

提前致谢。

4

1 回答 1

1

使用 HQL,它就是为此而生的

var rowsaffected = session.CreateQuery("UPDATE Part p SET p.Processed=:processed")
    .SetParameter(":processed", true)
    .ExecuteUpdate();
于 2012-12-11T12:05:40.510 回答