首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Nhibernate一对多关联

Nhibernate一对多关联
EN

Stack Overflow用户
提问于 2011-10-15 18:05:23
回答 2查看 1.8K关注 0票数 0

我有一个简单的模型:

代码语言:javascript
复制
public abstract class Entity
{
    public virtual Guid Id { get; protected set;  }
}

public class Post : Entity
{
    public String Title { get ; set; }
    public String Content { get; set; }
    public DateTime Timestamp { get; set; }
    public Byte[] Thumbnail { get; set; }
}

public class Blog : Entity
{   
    public String Title { get; set; }
    public ISet<Post> Posts { get; set; }
}

然后我有这样的映射:

BLOG

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" auto-import="true assembly="Application.Domain" namespace="Application.Domain.Entities">
  <class name="Blog">
    <!-- id generator -->
    <id name="Id">
      <generator class="guid.comb" />
    </id>
  <!-- properties/columns -->
  <property name="Title" not-null="true" />
  <!-- components/columns -->
  <!-- associations -->
  <set name="Posts" cascade="all">
     <!-- key column? -->       
  </set>
  </class>
</hibernate-mapping>

POST

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" auto-import="true" assembly="Application.Domain" namespace="Application.Domain.Entities">
  <class name="Blog">
    <!-- id generator -->
    <id name="Id">
      <generator class="guid.comb" />
    </id>
    <!-- properties/columns -->
    <property name="Title" not-null="true" />
    <property name="Content" not-null="true" />
    <property name="Timestamp" not-null="true"/>
    <property name="Thmbnail" />
    <!-- components/columns -->
    <!-- associations -->
  </class>
</hibernate-mapping>

如何映射一对多关联(单向)?

谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-10-15 20:19:06

在博客映射文件中,您需要定义引用post表中Blog实体的外键列之间的one-to-many关系,假设它是BlogId,并且您需要告诉它们此一对多关系与哪个类相关,在您的示例中,这将是Post类,您需要使用包含此类和逗号的完全限定命名空间来定义它,如下所示:

代码语言:javascript
复制
<set name="Posts" table="Post">
  <key column="BlogId"/>
  <one-to-many class="Application.Domain.Entities.Post, Application.Domain"/>
</set>
票数 1
EN

Stack Overflow用户

发布于 2011-10-15 19:05:24

我认为这与所描述的here是相同的问题。

另外,我认为你错误的映射了Post - class的名字不应该是Blog。此外,在您的示例中,帖子和博客之间也没有关系。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7777141

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档