0

私は 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; }
4

2 に答える 2

1

NH がテーブルをエンティティとして適切にマッピングして、セッションの ID マップに適切に適合させるには、何らかの ID が必要です。通常、これはテーブルの主キーによって表されます。テーブルで定義されていない場合でも、各レコードを区別するものを特定し、それをテーブル識別子としてマップしてみてください。これは、複合 ID である可能性があります。

于 2012-06-12T15:29:55.960 に答える
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");

これでできたと思いますので、ご指摘などありがとうございます。

于 2012-06-13T19:32:26.817 に答える