使用 NHibernate 映射表

发布于 2024-12-17 18:52:30 字数 635 浏览 0 评论 0原文

我是 NHibernate 的新手,所以我不确定这是否是提问的地方。但就这样吧。

这是我的问题:

我正在使用 Orchard CMS 构建一个网站。所有 Orchard 表均由 NHibernate 映射。我在同一个数据库中也有一些未由 NHibernate 映射的表。这些表格是由客户提供的。我需要使用 Orchard 查询这些表并在前端显示数据。我必须保持表模式完好无损。我有一个关于如何使用 NHibernate 映射表的教程,但是我在教程中看到的所有内容都要求表有一个 ID 列作为主键。客户提供给我的所有表都没有将 ID 作为第一个/主键列。是否可以不使用ID方法来映射到这些表?还是 ID 方法的变体?

Id(x => x.Id);

相反,我可以使用以下方式映射到表:

MyColumnName/Primarykey(x => x.Id);

Id(x => x.MyColumnname/PrimaryKey);

同样,此时我无法将数据迁移到 NHibernate 映射的新表中,并且表模式必须保持不变。当客户每晚更新这些表时。

任何帮助表示赞赏。

谢谢

I'm new to NHibernate, So I'm not sure if I this is even the place to ask questions. But here goes.

This is my problem:

I am building a website using Orchard CMS. All the Orchard tables are mapped by NHibernate. I also have tables in the same database that are NOT mapped by NHibernate. These tables were provided by the client. I need to query these tables and display data on the front end using Orchard. I must keep the table schemas in tact. I have a tutorial on how to map tables using NHibernate, however everything I see in the tutorials, requires the tables to have an ID column as the Primary key. None of the tables provided to me by the client have ID as the first/Primary key column. Is it possible to map to these tables without using the ID method? Or a variation of the ID method?

Id(x => x.Id);

Instead can I map to the table using:

MyColumnName/Primarykey(x => x.Id);

or

Id(x => x.MyColumnname/PrimaryKey);

Again, at this point I cannot migrate the data into new tables mapped by NHibernate and also the table schema must remain in tact. As the Client is updating these tables on a nightly bases.

Any help is appreciated.

Thanks

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

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

发布评论

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

评论(1

冰雪梦之恋 2024-12-24 18:52:30

您可以为属性指定不同的列名,甚至可以指定不同的类型,如果

table Topic
(
  TopicCode int,
  BrochureDesc text,
  URL text,
  ...
  primary key(TopicCode)
)

public TopicMap()
{
    Id(x => x.Id, "TopicCode").GeneratedBy.Native();
    Map(x => x.BrochureDescription, "BrochureDesc");
    Map(x => x.URL);
    ...
}

编辑:

public TopicMap()
{
    CompositeId()
        .KeyProperty(x => x.Subtitle)
        .KeyProperty(x => x.Description)
        .KeyProperty(x => x.ImageURL);
}

you can specify different columnnames for properties and even different types if y

table Topic
(
  TopicCode int,
  BrochureDesc text,
  URL text,
  ...
  primary key(TopicCode)
)

public TopicMap()
{
    Id(x => x.Id, "TopicCode").GeneratedBy.Native();
    Map(x => x.BrochureDescription, "BrochureDesc");
    Map(x => x.URL);
    ...
}

Edit:

public TopicMap()
{
    CompositeId()
        .KeyProperty(x => x.Subtitle)
        .KeyProperty(x => x.Description)
        .KeyProperty(x => x.ImageURL);
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文