두 종류의 엔티티, 주석 및 작업이 있습니다. 두 유형 모두 사용자가 책갈피 할 수 있습니다.Fluent NHibernate - 복수의 ChildKeyColumns를 가진 HasManyToMany가 가능합니까?
이CREATE TABLE [dbo].[Bookmarks] (
[ID] [int] IDENTITY(1,1) NOT NULL,
[FKUserID] [int] NOT NULL,
[FKCommentID] [int] NULL,
[FKTaskID] [int] NULL)
내 사용자 개체에 대한 이러한 관계의 매핑은 다음과 같습니다 : 그래서 '즐겨 찾기'라는 테이블 생성 한 모든 멋지게 내 생각 일 것이라고
var bookmarks = Component(x => x.Bookmarks, x => x.HasManyToMany(b => b.Comments)
.Table("Bookmarks")
.Access.CamelCaseField()
.ParentKeyColumn("FKUserID")
.ChildKeyColumn("FKCommentID")
.AsBag()
.LazyLoad());
bookmarks.HasManyToMany(b => b.Tasks)
.Table("Bookmarks")
.Access.CamelCaseField()
.ParentKeyColumn("FKUserID")
.ChildKeyColumn("FKTaskID")
.AsBag()
.LazyLoad();
을하지만,하지 않을 경우 데이터베이스 객체는 NHibernate 자체로부터 처음부터 생성된다. [Domain.Model.User.Domain.Model.User.Bookmarks.Tasks # 1] [SQL : INSERT INTO 책갈피 (컬렉션을 삽입 할 수 있습니다 : 그럼 좋은 오류 메시지
NHibernate.Exceptions.GenericADOException를 얻을 수 FKUserID, FKTaskID) VALUES (@ p0, @ p1)] ----> System.Data.SqlClient.SqlException : 열 'FKCommentID'테이블에 NULL 값을 삽입 할 수 없습니다 'xyzautomatedtests.dbo.Bookmarks'테이블; 열이 널을 허용하지 않습니다. INSERT가 실패합니다. 명세서가 종료되었습니다.
물론이 두 테이블 대신이 테이블을 사용하고있을 수 있지만이 실행 방법은 없습니까? 불행하게도이 두 자식 열을 nullable로 설정할 수있는 방법을 찾을 수 없습니다.
힌트가 있습니까?
어떤 버전의 .Net을 사용하고 있습니까? – Richard