안녕하세요,C# DAL 클래스 및 비즈니스 계층 클래스
이게 가능하면 알려주실 수 있습니까?
public class Person
{
public string Name { get; set; }
public int ID { get; set; }
}
클래스 호출 채우기는 (그래서 사람하고 인구가있는 곳이에없는 코드의 인구와 같은 엔티티라는 어셈블리에있는 사람이 DataAccessLayer라는 다른 어셈블리에서 수행되는 말 같은 어셈블리)
// 아래 코드는 datareader 등에서 읽는 것이지만 이것을 설명하기 쉽도록했습니다.
Person p=new Person();
p.Name="tom";
p.id = 10;
사람 클래스는 지금이 사람에 액세스 할 수 있도록 다른 시스템에 접근 할 것입니다. 내가 원하는 것은 다른 시스템이 ID를 변경할 수 없게하는 것입니다. 그것을 읽을 수는 있지만 쓰지는 마라. 이를 허용하고이 클래스를 다른 시스템 (예 : 비즈니스 개체) (즉 ORM)에만 공개하려면 다른 클래스 등을 만들어야합니까?
사람들이 많이 알고있는 것은 단지 ID를 읽기 전용으로 말하는 것입니다. 즉
public int ID { get; }
하지만 난이 다음 내가 위의 유사한 코드에서 ID를 채울 수 없습니다 할 경우는 읽기 전용으로하기 때문에 내 DataAccessLayer에 내가 ID를 설정할 수 없습니다.
감사 니얼
당신은 당신이 다음 다른 DLL (DataAccessLayer) 할 수 있습니다 엔터티 DLL에 대한 플래그를보고 사용할 수 있도록 설정으로 ID를 전달할 수있는 개체에 대한internal
생성자를 만들 수 있습니다
왜 읽기 전용 속성을 유지하지 않고 단순히 생성자를 통해 백업 변수의 값을 설정해야합니까? – Pierreten