示例#1
0
    public SqlTableReference(ISqlConnectionProvider sqlConnectionProvider, string qualifiedTableName)
    {
        SqlConnectionProvider = sqlConnectionProvider ?? throw new ArgumentNullException(nameof(sqlConnectionProvider));

        if (string.IsNullOrWhiteSpace(qualifiedTableName))
        {
            throw new ArgumentException("Value cannot be null or whitespace.", nameof(qualifiedTableName));
        }

        var fullTableName = DbTableNameWithNullableSchemaParser.ParseFullTableName(qualifiedTableName);

        SchemaName = fullTableName.SchemaName ?? throw new Exception("Schema name must be provided.");
        TableName  = fullTableName.TableName;
    }
    public void Table()
    {
        var parse1 = DbTableNameWithNullableSchemaParser.ParseFullTableName("dbo.Table");

        parse1.Should().Be(new DbTableNameWithNullableSchema("dbo", "Table"));

        var parse2 = DbTableNameWithNullableSchemaParser.ParseFullTableName("Table");

        parse2.Should().Be(new DbTableNameWithNullableSchema(null, "Table"));

        var parse3 = DbTableNameWithNullableSchemaParser.ParseFullTableName("[A.B]");

        parse3.Should().Be(new DbTableNameWithNullableSchema(null, "A.B"));

        var parse4 = DbTableNameWithNullableSchemaParser.ParseFullTableName("dbo.[A.B]");

        parse4.Should().Be(new DbTableNameWithNullableSchema("dbo", "A.B"));

        var parseFail = () => DbTableNameWithNullableSchemaParser.ParseFullTableName("d.bo.[A.B]");

        parseFail.Should().Throw <Exception>();
    }