FluentNhibernate;매핑 nhibernate 부모/자식 관계 '다른'방법 라운드
나는 단순 해 보이는 개체 모델 유지하는 것을 시도하고있다 :
public class Product
{
public int Id { get; set; }
public string Name { get; set; }
public Config Config { get; set; }
}
public class Config
{
public int ConfigId { get; set; }
public int ProductId { get; set; }
public string ConfigField1 { get; set; }
public string ConfigField2 { get; set; }
}
과 같은 데이터베이스가 같습니다 상자 유창 - NHibernate에 부족
CREATE TABLE [dbo].[Products](
[ProductId] [int] IDENTITY(1,1) NOT NULL,
[Name] [varchar](50) NULL
)
CREATE TABLE [dbo].[Config](
[ConfigId] [int] IDENTITY(1,1) NOT NULL,
[ProductId] [int] NOT NULL,
[ConfigField1] [varchar](50) NULL,
[ConfigField2] [varchar](50) NULL
) ON [PRIMARY]
시도 할 것이다 (문법적으로 정확하지 않음)
INSERT INTO 제품 (이름, Config_ 다음
Products
테이블 예에 외래 키로이지도 id) VALUES (?,?);
필자는 매핑이 제품을 먼저 삽입하고 구성 테이블에 ProductId
이 삽입되고 Config 테이블에 삽입되기를 바라고 있습니다.
나는 내 머리를 꺼내어 과 this과 같은 링크를 읽었지만 여전히 원하는대로 할 수는 없습니다. 기존 데이터와 코드으로 작업 중이므로 데이터베이스 테이블 정의 또는 도메인 개체를 변경하지 않을 것입니다. 도메인 모델 디자인에 대한 토론을 피할 수 있다면이 예제가 그리는 것보다 더 많은 일이있을 것입니다.
public class ProductOverrides : IAutoMappingOverride<Product>
{
public void Override(AutoMapping<Product> mapping)
{
mapping.Id(x => x.Id).Column("ProductId");
mapping.Table("Products");
}
}
public class ConfigOverrides : IAutoMappingOverride<Config>
{
public void Override(AutoMapping<Config> mapping)
{
mapping.Id(x => x.ConfigId);
}
}
시도해 보셨습니까? http://brunoreis.com/tech/fluent-nhibernate-hasone-how-implement-one-to-one-relationship/ –
그게 어떻게 도움이되는지 설명해 주시겠습니까? 'Config'는 자체 기본 키'ConfigId'를 가지고 있지만'ProductId' – wal