【发布时间】:2019-04-13 07:09:07
【问题描述】:
当访问一个条件列要经过多个表时,为连接的表生成了一个很长的别名。在 Firebird 中,最大标识符限制为 31 个字符。是否可以影响生成别名的大小?
我使用 .net core 2.1 和 FirebirdSql.EntityFrameworkCore.Firebird 6.6.0
抽象例子:
class Table1
{
int id
int value
int idTable2
[ForeignKey("idTable2")]
Table2 table2
}
class Table2
{
int id
int idTable3
[ForeignKey("idTable3")]
Table3 table3
}
class Table3
{
int id
bool condition
}
当我这样做时:
var result = Table1.where(t => t.table2.table3.condition).select(t => value)
生成查询:
SELECT
value
FROM
Table1 AS "r"
LEFT JOIN Table2 AS "r.Table2" ON "r"."idTable2" = "r.Table2"."id"
LEFT JOIN Table3 AS "r.Table2.Table3" ON "r.Table2"."IdTable3" = "r.Table2.Table3"."id"
WHERE
"r.Table2.Table3"."condition"
是否可以将可连接表的别名设为主表?如“a”、“b”等。
【问题讨论】:
标签: c# entity-framework-core firebird