대회를 사용하여 부품 모음을 어떻게 매핑합니까?읽기 전용 속성을 통해 액세스 된 컬렉션을 매핑하는 방법은 무엇입니까?
public class Part
{
public virtual int Id { get; set; }
public virtual string Name { get; set; }
}
public class Car
{
private readonly List<Part> _parts = new List<Part>();
public virtual int Id { get; set; }
public virtual IList<Part> Parts
{
get { return _parts.AsReadOnly(); }
}
}
나는이 규칙을 시도했지만 항상 밑줄 접두사없이 필드 이름을 기대 :
public class HasManyConvention : IHasManyConvention
{
public void Apply(IOneToManyCollectionInstance instance)
{
instance.Access.ReadOnlyPropertyThroughCamelCaseField(CamelCasePrefix.Underscore);
}
}
나는 1.2.0.694와 2.0.0.698 그것을 시도했습니다 같은 결과 빌드 :
"Could not find field 'parts' in class 'TestFluentNHibernate.Car'"
"보호 설정은"아니다 파트 컬렉션 속성을 읽기 전용으로 만들 것입니다. 외부 클래스가 다른 컬렉션에 대한 참조를 변경하는 것을 방지합니다. 읽기 전용으로 만들려면 새로운 ReadOnlyCollection (Parts)을 반환하거나 IEnumerable을 반환해야합니다 (진정한 읽기 전용은 아니지만 API 소비자에게 좋은 표시를 제공). 두 가지 방법의 의미에 대한 자세한 내용은 SO 검색을 참조하십시오. – Trygve
아, 그런데 _parts가 멤버 변수 대신 자동 구현 된 속성이라는 것을 알았습니다. 변경해야합니다. – Trygve