流畅的 NHibernate 连接表映射

发布于 2024-09-04 07:20:09 字数 799 浏览 4 评论 0原文

使用 Fluent N-Hibernate 对现有数据库进行逆向工程以与 N-Hibernate 进行映射。

我怎样才能映射这个?

地址表

ID
地址1
Address2

人员表

ID
第一
最后

类型

ID
TypeName

PersonAddress 表(一个人可以有家庭、公司等地址)

Id

PersonId(来自人员表的 Id)

AddressId(来自地址表的 Id)

TypeId(来自类型查找表 HOME、BUSINESS 等的 Id..)

任何帮助都会很棒。谢谢

除了上面的映射之外,还有另一个棘手的问题。不知道绘制地图有多容易。

参与方表

ID 人员 Id 指向人员

标识符表

Id 参与方 ID 类型 ID 标识符值

员工表

员工 ID 没有任何一方或个人表具有此表的外键。员工 ID 存储在 标识符表。例如,标识符表用于存储不同类型的值。给定方的标识符可以是 DriverLicense、EmployeeId、SSN、信用卡号等,这可能有很多值。

示例标识符数据

Id、PartyId、TypeId、IdentifierValue

1 , 1, 1, EMPLID-1234 2、2、1、EMPLID-4567 3 , 3, 1, EMPLID-34354

我试图解决这个问题,但无法将其映射。

Reverse engineering an existing database to map with N-Hibernate using Fluent N-Hibernate.

How can I map this?

Address table

Id
Address1
Address2

Person table

Id
First
Last

Types

Id
TypeName

PersonAddress table (A person can have home, business etc addresses)

Id

PersonId (Id from person table)

AddressId (Id from address table)

TypeId (Id from types lookup table HOME, BUSINESS etc..)

Any help would be great. Thanks

Here's another tricky one in addition to above mapping. Don't know how easy it would be to map it.

Party Table

Id
Person Id points to Person

Identifiers Tables

Id
Party Id
Type Id
Identifier value

Employee table

Employee Id No party or person table has foreign key to this table. The employee id is stored in the
identifiers table. so for e.g. The identifier table is used store values for different types. The identifiers for a given party could DriverLicense, EmployeeId, SSN, Credit Card numeber etc, this could be many values.

Sample identifier data

Id, PartyId, TypeId, IdentifierValue

1 , 1, 1, EMPLID-1234
2 , 2, 1, EMPLID-4567
3 , 3, 1, EMPLID-34354

I am trying to get my head around this and just can't get it to mapped.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

风月客 2024-09-11 07:20:09
// this answer assumes you have functional Address, Person, Type, and PersonAddress objects.

public class AddressMap : ClassMap<Address>
{
  public AddressMap()
  {
    Id(x=>x.Id);
    Map(x=>x.Address1);
    Map(x=>x.Address2);
  }
}

public class PersonMap : ClassMap<Person>
{
   public PersonMap()
   {
     Id(x=>x.Id);
     Map(x=>x.First);
     Map(x=>x.Last);
   }
}

public class TypeMap : ClassMap<Type>
{
   public TypeMap()
   {
     Id(x=>x.Id);
     Map(x=>x.TypeName);
   }
}

public class PersonAddressMap : ClassMap<PersonAddress>
{
   public PersonAddressMap()
   {
     Id(x=>x.Id);
     References(x=>x.Person, "PersonId");
     References(x=>x.Address, "AddressId");
     References(x=>x.Type, "TypeId");
   }
}
// this answer assumes you have functional Address, Person, Type, and PersonAddress objects.

public class AddressMap : ClassMap<Address>
{
  public AddressMap()
  {
    Id(x=>x.Id);
    Map(x=>x.Address1);
    Map(x=>x.Address2);
  }
}

public class PersonMap : ClassMap<Person>
{
   public PersonMap()
   {
     Id(x=>x.Id);
     Map(x=>x.First);
     Map(x=>x.Last);
   }
}

public class TypeMap : ClassMap<Type>
{
   public TypeMap()
   {
     Id(x=>x.Id);
     Map(x=>x.TypeName);
   }
}

public class PersonAddressMap : ClassMap<PersonAddress>
{
   public PersonAddressMap()
   {
     Id(x=>x.Id);
     References(x=>x.Person, "PersonId");
     References(x=>x.Address, "AddressId");
     References(x=>x.Type, "TypeId");
   }
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文