我有2个Classes和2个Mapping Itens,当我在CreatingSchema中我的NHibernate在我的SQLite数据库上创建一个随机ID外键时,我的代码上没有'ID',我不知道它来自哪里。
类
public class Locacoes{
public Locacoes()
{
}
public virtual int Codigo { get; set; }
public virtual string Data { get; set; }
public virtual string DataFesta { get; set; }
public virtual string HoraInicio { get; set; }
public virtual string HoraFim { get; set; }
public virtual int TipoEspaco { get; set; }
public virtual string NomeCelebrante { get; set; }
public virtual string Cep { get; set; }
public virtual string Endereco { get; set; }
public virtual string Complemento { get; set; }
public virtual string Bairro { get; set; }
public virtual string Cidade { get; set; }
public virtual string Uf { get; set; }
public virtual string Fone { get; set; }
public virtual string Obs { get; set; }
public virtual double Desconto { get; set; }
public virtual double ValorTotal { get; set; }
public virtual TemaFesta CodTemaFesta { get; set; }
}
}
2.Class
public class TemaFesta
{
public TemaFesta()
{
}
public virtual int Codigo { get; set; }
public virtual string Descricao { get; set; }
public virtual ISet<Locacoes> Locacoes { get; set; }
}
}
对不起。我不能在这里发布我的映射代码所以没有显示它,所以我发布了图片 1.映射 Fist Mapping 2.映射 Mapping2
然后,我的SQlite创建语句
CREATE TABLE Locacoes (Codigo integer primary key autoincrement, Data TEXT, DataFesta TEXT, HoraInicio TEXT, HoraFim TEXT, TipoEspaco INT, NomeCelebrante TEXT, Cep TEXT, Endereco TEXT, Complemento TEXT, Bairro TEXT, Cidade TEXT, Uf TEXT, Fone TEXT, Obs TEXT, Desconto DOUBLE, ValorTotal DOUBLE, CodTemaFesta INT, id INT, constraint FK1C57939D5747171D foreign key (CodTemaFesta) references TemaFesta, constraint CodTemaFesta foreign key (id) references TemaFesta)
“约束CodTemaFesta外键(id)引用TemaFesta)” 我没有它,为什么nhibernate创造它呢?
答案 0 :(得分:0)
这里没有任何随意的事情发生。
问题在于&#34;设置&#34;映射。
您正在声明一个外键=&#34; CodTemaFesta&#34;然后使用您的CreateSchema语句生成。我不确定您是否要创建此db外键,但这是您声明的内容。
如果你只是在代码中映射它,你需要给它一个像这样的列名
<key column="<column-name>" />