使用流畅的nhibernate访问现有数据库表

时间:2012-06-12 15:15:22

标签: c# fluent-nhibernate

我是nhibernate的开始,我正在尝试使用fluent-nhibernate连接到预先存在的数据库表。该表没有id字段,我不知道如何让查询工作。我收到错误 - “字段ID不存在于”。

该表位于DB2数据库中,因此一些用于自动生成代码的工具不适用。

更新

文件和类看起来更像是以下(WHO是主键的地方)

public class Nougal
{
    public virtual string WHO { get; set; }
    public virtual string YN1 { get; set; }
    public virtual string YN2 { get; set; }
    public virtual string YN3 { get; set; }
    public virtual string YN4 { get; set; }

2 个答案:

答案 0 :(得分:1)

您必须拥有某种ID才能让NH正确地将您的表映射为实体,以便在会话的身份映射中正确地适应它。通常,这由表中的主键表示。即使未在表中定义,也要尝试识别区分每条记录的内容并将其映射为表标识符。这可能是复合身份。

答案 1 :(得分:1)

我有它工作,我必须创建一个地图,并将Id字段指向用作主键的列。

public class FILENAMEMap : ClassMap<FILENAME>
{
    public FILENAMEMap()
    {     
        Table("FILENAME");
        Id(x => x.Id).Column("WHO");
        Map(x => x.YN1).Column("YN1");
        Map(x => x.YN2).Column("YN2");

我认为这已经做到了,所以感谢指针等。