2014-11-21 105 views
1

在我的NHibernate映射文件中,我有两个类,其中一个类属性与另一个类名称具有相同的名称()。NHibernate映射。类名称与属性名称相同

<class name="Machine" table="SpisMaszyn" dynamic-update="true"> 
    <cache usage ="read-write"/> 
    <id name="ID" column="ID" type="int"> 
     <generator class="native" /> 
    </id> 
    <property column="NazwaMaszyny" name="MachineName" /> 
    <property column="Grupa" name="Group" /> 
    </class> 


    <class name="Group" table="SpisGrup" dynamic-update="true"> 
    <cache usage ="read-write"/> 
    <id name="ID" column="ID" type="int"> 
     <generator class="native" /> 
    </id> 
    <property name="Name" column="Nazwa" /> 
    </class> 

我不知道为什么,但如果名称相同,则代码无法正常工作。在我的ModelState中,我获得了Group的空值。我不确定是什么原因造成的。

你有什么想法可能会导致这种情况?

回答

1

映射是正确的。事实上,一些财产和一些其他类名称共享相同的名称,对NHibernate来说没有任何问题。检查底层的列内容。运行探查器来查看SQL查询,并确保返回的数据是有...

原assumpiton许多到一个需要删除

+0

这不是引用。这是一个正常的属性(字符串)。我只是将它命名为与班级相同。我只是不知道为什么会造成问题。 – 2014-11-21 12:56:38

+0

*然后抱歉我的误解。多对一是不需要的。但是你的映射是正确的。财产与其他一类的名称相同并不是问题。我猜想,底层列**“GRUPA”**是简单的空或空。因为映射是正确的;) – 2014-11-21 13:22:20

+0

是的,我认为是这样,但代码在将属性名称更改为GroupName后开始工作。现在很好。这真的很奇怪。 – 2014-11-21 14:25:52