小编sot*_*otn的帖子

确定性字符串替换和整理

我有一个持久的计算列,它调用一个Scalar Valued Function.如您所知,此函数需要具有确定性才能保持该值.即使REPLACE函数以确定的方式运行(我不能认为它不是这样的情况),SQL Server似乎将其​​解释为不确定的.因此,我不能在功能中使用它.

我尝试做的是将一些非英语字符转换为英语.区分大小写在这里很重要.我想的字母转换??üÜ????öÖçÇgGuUsSiIoOcC分别.我可以通过使用以下内容来实现它(以"非确定性"的方式)

SET @ColumnValue = REPLACE(@ColumnValue COLLATE SQL_Latin1_General_CP1253_CS_AS, '?', 'i') --This character("?") is converted to "?" after collation so that I manually replace it
SET @ColumnValue = @ColumnValue COLLATE SQL_Latin1_General_CP1253_CS_AS --This line takes care of the other characters
Run Code Online (Sandbox Code Playgroud)

SQL Server将上面的代码解释为非确定性(demo)因为REPLACECOLLATE(我认为它虽然是确定性的......).

我尝试的另一件事是在循环中使用带有STUFF的CHARINDEX,但由于需要区分大小写,因此需要使用排序规则.如果没有排序规则,SQL Server会将其视为确定性的.WHILE

我有什么选择?

sql t-sql sql-server

8
推荐指数
1
解决办法
1054
查看次数

JFrame加载很晚

我的代码是:

    solveDb_userfileInconsistency solve = new solveDb_userfileInconsistency();
    solve.setVisible(true);

    try {
        solve.solveIt();
    } catch (InstantiationException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (IllegalAccessException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (ClassNotFoundException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (SQLException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
Run Code Online (Sandbox Code Playgroud)

"solveIt"方法在30秒后返回,直到它返回,帧没有正确安装但在solveIt方法返回后,框架安装正确但我想要的是在进入solveIt方法之前,框架应该在屏幕上正确.是否有任何方法可以等待框架的安装,然后调用solveIt方法?

java

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

获得列类型的确定性方法

我有一个计算列,它使用标量值函数来评估它的值.我需要Persisted根据某些原因制作专栏并且要做到这一点,我需要使该功能具有确定性.我使用如下的查询来获取列类型:

SELECT 
    @dataType = DATA_TYPE
FROM 
    INFORMATION_SCHEMA.COLUMNS (NOLOCK)
WHERE 
    TABLE_SCHEMA = 'X' AND
    TABLE_NAME = @TableName AND 
    COLUMN_NAME = @ColumnName
Run Code Online (Sandbox Code Playgroud)

当我尝试向WITH SCHEMABINDING函数添加子句(使其成为确定性)时,我收到以下错误:

无法模式绑定函数'X.MY_FUNCTION',因为它引用了系统对象'INFORMATION_SCHEMA.COLUMNS'.

如何以确定的方式获取列的类型?我查看了COLUMNPROPERTY和其他元数据函数,但找不到在不使用系统对象的情况下获取列类型的方法.

t-sql sql-server

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

Automapper ProjectTo将ToList添加到子属性中

我使用projection通过Entity Framework Core将实体类映射到DTO。但是,投影会将ToList添加到子集合属性中,这会使查询速度大大降低。

公司实体:

public class Company
{
    public Company()
    {
        Employees = new List<CompanyEmployee>();
    }

    public string Address { get; set; }
    public virtual ICollection<CompanyEmployee> Employees { get; set; }
    ...
}
Run Code Online (Sandbox Code Playgroud)

公司DTO:

public class CompanyDTO
{
    public CompanyDTO()
    {
        CompanyEmployees = new List<EmployeeDTO>();
    }

    public string Address { get; set; }
    public List<EmployeeDTO> CompanyEmployees { get; set; }
    ...
}
Run Code Online (Sandbox Code Playgroud)

组态:

CreateMap<Company, CompanyDTO>()
    .ForMember(c => c.CompanyEmployees, a => a.MapFrom(src => src.Employees));
CreateMap<CompanyEmployee, EmployeeDTO>();
Run Code Online (Sandbox Code Playgroud)

查询:

UnitOfWork.Repository<Company>()
    .ProjectTo<CompanyDTO>(AutoMapper.Mapper.Configuration)
    .Take(10)
    .ToList(); …
Run Code Online (Sandbox Code Playgroud)

c# entity-framework automapper entity-framework-core

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

LINQ通用列表声明

我有一个bool数组和一个List:

bool[ ] searchable

List<T> allData
Run Code Online (Sandbox Code Playgroud)

我想做的是如下

allData.Where(c => searchable[0] && c[0].Contains("das") ||
                   searchable[1] && c[1].Contains("das") ||
                   searchable[2] && c[2].Contains("das")
                   ...
              );
Run Code Online (Sandbox Code Playgroud)

如何构建此LINQ函数?

linq

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