NHibernate에서 Fluent Automapping을 사용하여 어떻게 동적 구성 요소를 자동으로 매핑 할 수 있는지 아는 사람 있습니까?동적 구성 요소 유창 오토 맵핑
일반 클래스를 구성 요소로 매핑 할 수 있지만 사전을 유창한 자동 매핑을 사용하여 동적 구성 요소로 매핑하는 방법을 알 수 없다는 것을 알고 있습니다.
감사
NHibernate에서 Fluent Automapping을 사용하여 어떻게 동적 구성 요소를 자동으로 매핑 할 수 있는지 아는 사람 있습니까?동적 구성 요소 유창 오토 맵핑
일반 클래스를 구성 요소로 매핑 할 수 있지만 사전을 유창한 자동 매핑을 사용하여 동적 구성 요소로 매핑하는 방법을 알 수 없다는 것을 알고 있습니다.
감사
우리는 ( 1.2.0.712 FluentNH에) 성공적으로 다음과 같은 방법을 사용했습니다 :
여기public class SomeClass
{
public int Id { get; set; }
public IDictionary Properties { get; set; }
}
public class SomeClassMapping : ClassMap<SomeClass>
{
public SomeClassMapping()
{
Id(x => x.Id);
// Maps the MyEnum members to separate int columns.
DynamicComponent(x => x.Properties,
c =>
{
foreach (var name in Enum.GetNames(typeof(MyEnum)))
c.Map<int>(name);
});
}
}
우리가 어디에서 모든 열을 구분하는 데 몇 가지 열거의 모든 구성원을 매핑했습니다 유형은 int입니다. 지금은 우리가 대신 다음과 같습니다 동적 컬럼에 대해 서로 다른 유형을 사용 시나리오에서 일하고 있어요 :이 또한 아주 잘 작동
// ExtendedProperties contains custom objects with Name and Type members
foreach (var property in ExtendedProperties)
{
var prop = property;
part.Map(prop.Name).CustomType(prop.Type);
}
합니다. 난 아직도 파악하려고 해요 무엇
는 ... 어떻게 자신의 매핑이 다른 유형을 참조하는 Map
대신 References
을 사용하는 것입니다
UPDATE :이 참조의 경우는 불행하게도 더 복잡 자세한 내용은 this Google Groups thread을 참조하십시오. 짧게 :
// This won't work
foreach (var property in ExtendedProperties)
{
var prop = property;
part.Reference(dict => dict[part.Name]);
}
// This works but is not very dynamic
foreach (var property in ExtendedProperties)
{
var prop = property;
part.Reference<PropertyType>(dict => dict["MyProperty"]);
}
그게 전부입니다.