2011-04-28 95 views
0

我有一个流利的nhibernate映射问题。流利Nhibernate外键约束

说我有2个资A I B是这样的:

public class A { 
    public virtual Guid Id { get; private set; } 
    public virtual B RefToB { get; set; } 
} 

public class B { 
    public virtual Guid Id { get; private set; } 
} 

我应该如何将它们映射,从而禁止我删除B时的它是由A.引用

所以,当我“M会说:

B b = new B(); 
A a = new A(); 
a.RefToB = b; 
Session.Save(b); 
Session.Save(a); 

(...)

Session.Delete(b); //should throw some kind of exception that states 
        //"cannot remove b its used by a" 
+0

是A.Id = B.Id?如果不是这两个实体如何相关? – 2011-04-28 23:22:01

+0

唯一的关系是A引用B – coding4beer 2011-04-28 23:56:38

+0

我意识到A引用上面你的类结构B.这两个在数据库中如何相关?它可能有助于发布相关数据库表格以及它们如何相关。 – 2011-04-29 00:15:15

回答

0

首先你需要弄清楚他们有什么样的关系。去这个链接,一些有用的信息,一到一个映射关系 - 如果这是你想要的东西:

http://brunoreis.com/tech/fluent-nhibernate-hasone-how-implement-one-to-one-relationship/

+0

这不是一对一,它是多对一的。所以我需要使用References(x => x.RefToB),但那不能回答我的问题 – coding4beer 2011-04-28 21:37:22

+0

在这种情况下,请看这篇文章[NHibernate:使用Fluent Nhibernate保存子对象](http:// stackoverflow。 com/questions/524974/nhibernate-using-fluent-nhibernate-to-save-child-objects),它对级联有评论。 – 2011-04-28 21:51:38

+0

级联不会帮助我,因为我没有从B到A的关系 - 只是形式A到B.而我试图删除B – coding4beer 2011-04-28 22:03:37