1

我正在尝试在无法更改的旧系统(Jet db)中映射两个表。子表对父表中的字符串类型列具有 FK。父表中的 FK 列是必需的,但通常是空格,即“”。我知道这毫无意义,但这是我必须处理的。我的映射是;

        References(x => x.ParentObject)
              .Formula("NOT ParentFKColumn = ' '")
              .Column("ChildFKColumn")
              .LazyLoad()
              .Nullable();  

此映射导致以下异常“非法访问加载集合:输入字符串''格式不正确”。这个错误似乎很明显——我只是不确定如何流畅地处理它。

谢谢你的时间。

4

1 回答 1

1

我假设父表中的字符串类型列不是主键,因此您需要将其映射为property并使用property-ref.

 References(x => x.ParentObject)
          .PropertyRef("stringProperty")
          .Column("ChildFKColumn")
          .Not.LazyLoad()      // to prevent creating invalid Proxies, but property-ref should already do this
          .NotFound.Ignore(); // threat all values in the foreign key which 

.NotFound.Ignore();告诉 NH 威胁外键中所有不指向有效记录的值为空。

于 2012-07-27T06:21:33.170 回答