sql >> Databáze >  >> RDS >> Mysql

subsonic 2 spojení na více sloupcích

S SubSonic 2 po vybalení nemůžete.

To znamená, že máte následující alternativy:

Rozšířit SubSonic

Pokud již SubSonic znáte, můžete zvážit přidání vícesloupcových spojení do samotného SubSonic.

Používejte pohledy, uložené procedury, tabulkové funkce

Pokud si nechcete zahrávat s kódem SubSonics, použijte pohledy, uložené procedury a/nebo tabulkové funkce na serveru SQL. SubSonic usnadňuje přístup k datům z pohledů a uložených procedur.

Použijte vložený dotaz

InlineQuery umožňuje spouštět libovolné sql - pokud je to možnost mít v kódu holé sql.

Ošklivé řešení s InlineQuery

Pokud bezpodmínečně chcete vytvořit svůj dotaz pomocí SubSonic, můžete zkusit toto:

SqlQuery q = DB.Select()
  .From<TableA>()
  .CrossJoin<TableB>()
  .Where(TableA.YearColumn).IsEqualTo(0)
  .And(TableA.MonthColumn).IsEqualTo(0)
  .And(TableA.UseridColumn).IsEqualTo(0);

Sestavte příkaz SQL a nahraďte názvy parametrů:

string s = q.BuildSqlStatement();
s = s.Replace(q.Constraints[0].ParameterName, TableB.YearColumn.QualifiedName);
s = s.Replace(q.Constraints[1].ParameterName, TableB.MonthColumn.QualifiedName);
s = s.Replace(q.Constraints[2].ParameterName, TableB.UserIdColumn.QualifiedName);

Poté použijte s s InlineQuery.




  1. Použití SQL Server Integration Services (SSIS) k naplnění záznamů QuickBooks

  2. 3 způsoby, jak vypsat všechny spouštěče pro danou tabulku v PostgreSQL

  3. Prostorový index v MySQL – CHYBA – Nelze získat objekt geometrie z dat, která odesíláte do pole GEOMETRY

  4. Vyberte inkrementované celé číslo