나는 종종 내가이 수업 방법을 두지 않고 내가 주로 I가 직렬화 할 수 헬퍼 클래스로 사용하므로Linq2Sql 데이터에 경량 데이터 클래스 대신 Struct를 사용해야합니까?
public class myentity
{
public Guid id { get; set; }
public string name { get; set; }
// etc
}
같은 간단한 데이터 전용 클래스를 생성 linq2sql 수업을 만들/json 및 기타 유사한 동작에서 아주 쉽게
제 질문은 클래스가 아닌이 경우 구조체를 사용해야합니까?
구조체의 정의에 따라 구조체를 만드는 것이 당연한 것처럼 보입니다. 그러나 메서드에서 메서드로 클래스를 전달할 때마다 성능이 이상적 일지는 모르겠지만 struct가 값 유형이기 때문에 사본을 필요로하지 않습니다.
내가 자주하는 또 다른 사항은 Linq2Sql의 지연된 실행을 사용하여 Linq2Sql 클래스가 생성 한 것보다는 내 자신의 경량 버전을 반환하는 것입니다. 클래스 대신 struct를 사용하면 여기에 불리한 성능상의 영향이 있을지 모르겠습니다.
나는 지연 실행을 사용하십시오 방법의 예 내가 class
로 가고 싶어이
public IEnumerable<myentity> getEntities()
{
return from me in MyEntity return new myentity() { id = me.id, name = me.name };
}
public IEnumerable<myentity> getEntitiesThatStartWith(string s)
{
return from me in getEntities() where me.name.StartsWith(s);
}
와우, 그걸 알지 못했습니다. 구조체에 대해 더 많이 읽어야합니다. 감사합니다. –