Bri*_*ian 8 c# nhibernate properties nhibernate-mapping-by-code
我试图将属性映射到另一个表的任意列.文档说公式可以是任意SQL,我看到的例子显示类似.
但是,SQL NHibernate生成的甚至不是有效的.公式中的整个SQL语句被注入SELECT语句的中间.
Property(x => x.Content, map =>
{
map.Column("Content");
map.Formula("select 'simple stuff' as 'Content'");
});
Run Code Online (Sandbox Code Playgroud)
Fir*_*iro 10
这是Formula设计的方式,它应该以这种方式工作.您需要将SQL语句包装在parens中,以便生成有效的SQL.
此外,您不能一起指定列和公式.您必须提供整个SQL语句.任何非前缀/转义列(下面示例中的"id")将被视为拥有实体的表的列.
Property(x => x.Content, map =>
{
map.Formula("(select 'simple stuff' as 'Content')");
});
// or what you probably want
Property(x => x.Content, map =>
{
map.Formula("(select t.Content FROM AnotherTable t WHERE t.Some_id = id)");
});
Run Code Online (Sandbox Code Playgroud)