1

내가 다 대다 관계를 매핑하기 위해 노력하고있어,하지만 매핑 목록 속성이 null 유지 및 항목은 저장되지 않습니다 (작동하지 않는 나는 다음과 같은 테이블을 사용FluentNHibernate 자동 매핑 ManyToMany

을 :.

:
User(Id, Name, Password,...) 
Role(Id, Name) 
RoleUser(UserId, RoleId) with a compound primary key 

내 개체 파일이 적용되는 두 개의 규칙이 있습니다

public class User 
{ 
    public virtual int Id { get; protected set; } 
    public virtual string UserName { get; set; } 
    public virtual IList<Role> Roles { get; set; } 
} 
public class Role 
{ 
    public virtual int Id { get; protected set; } 
    public virtual IList<User> Users { get; set; } 
    public virtual string Name { get; set; } 
} 

있습니다 내가 파일에 매핑을 내보낼 때 8,

, 내가 예를 들어 사용자 정의 내에서 다음 코드를 얻을 :

<id name="Id" type="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> 
    <column name="Id" /> 
    <generator class="identity" /> 
</id> 
<bag cascade="all" inverse="true" name="Roles" table="RoleUser"> 
    <key> 
    <column name="UserId" /> 
    <column name="UserId" /> 
    </key> 
    <many-to-many class="Security.Role, Contracts, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"&gt; 
    <column name="RoleId" /> 
    </many-to-many> 
</bag> 
<property name="UserName" type="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> 
    <column name="UserName" /> 
</property> 

키 내에서 중복 열 사용자 ID 나에게 올바르지 보인다. 내가 뭘 잘못했는지 모르겠습니다. 도와 주셔서 감사합니다.

+0

schemaexport가 올바른 스키마를 생성합니까? ddl을 db 대신 파일로 내보낼 수 있습니다. – Firo

+0

스키마 내보내기 스 니펫은 ExportTo (폴더) 메소드로 생성되었습니다. 무엇을 의미합니까? –

+0

당신은 생성 된 매핑을 게시했으나'새로운 SchemExport (config) .Execute (새로운 StreamWriter ("somefile.txt"). WriteLine, false, null, false) ' – Firo

답변

-1

문제는 매핑 테이블의 스키마입니다. 나는 커스텀 ManyToManyTableConvention로 끝났다.