프로젝트에는 클래스 모델 클래스가 있습니다 (이 클래스는 modelClass
).데이터베이스 작업을 위해 setter 사용
그리고 데이터베이스 (db - Advantage 데이터베이스 아키텍처) 작업을위한 몇 가지 방법을 제공하는 클래스 (dbClass
)가 있습니다. 이 클래스는 데이터베이스 작업을위한 정적 메서드를 제공합니다. ORM (EF와 같은), 저장소 패턴을 사용할 수 있다는 것을 알고 있지만이 프로젝트에서는 데이터베이스 작업에 대한 주요 아이디어가 정적 메서드를 사용하는 정적 클래스입니다.
modelClass에는이 필드가 있습니다 ("Status
"(문자열 유형)).
필자는 "Status
"을 설정하면 유스 케이스가 데이터베이스의 업데이트 레코드입니다. 내가 다른 솔루션을 함께했다
....
modelClass.Status = "status";
dbClass.update(modelClass);
....
사용
public class modelClass{
//here some fileds
public string Status { get; set; }
//here some fileds
}
public class dbClass{
//here some fileds and method for work with database
public static void update(modelClass mClass){
//here update the record in database
}
}
:
아래 내 솔루션을 볼 수 있습니다.
제 결정의 아이디어는 키워드 "set
"을 사용하는 것입니다.
내 생각을 설명해 드리겠습니다. modelClass에 필드를 설정하면 데이터베이스에 필드 및 업데이트 레코드를 설정하려고합니다. 예를 들어
:
public class modelClass{
//here some fileds
private string Status { get; set; }
//create public setter
public string setStatus{
get { return Status; }
set
{
Status = value;
dbClass.update(this);
}
}
//here some fileds
}
modelClass.setStatus= "status";
주요 질문 사용은 다음과 같습니다 세터로 데이터베이스 그것은 좋은 연습 일이
- 인가?
- 왜이 아이디어를 사용해야합니까/사용하지 않아야합니까?
- 나에게 내 생각
[SOLID 원칙 (http://butunclebob.com/ArticleS.UncleBob.PrinciplesOfOod) 당신의 도움에. 커플 링이 커지므로 문제가 발생할 수 있습니다. 질문 : DB 인터페이스가 변경되면 어떻게됩니까? 데이터베이스없이 수업을 어떻게 테스트합니까? 한 번에 여러 필드를 업데이트하는 트랜잭션이 필요한 경우에는 어떻게해야합니까? –
이것은 너무 광범위하거나 의견을 바탕으로 한 것 같습니다. [C# 속성 가져 오기 도구가 DB에서 읽지 못하는 이유는 무엇입니까?] (http://stackoverflow.com/questions/6682902/why-should-ac-sharp-property-getter-not-read-from-a-db) , [속성은 부작용이 있어야한다] (http://programmers.stackexchange.com/questions/82377/should-properties-have-side-effects) 등등. – CodeCaster
@DmitryLedentsov, 답장을 보내 주셔서 감사합니다. 솔직하게 말해서, 데이터베이스에 변경 사항이있는 경우 어떻게하면이 클래스를 테스트 할 수 있을지 결정할 수 없습니다. 주요 질문에 감사드립니다. 내 솔루션이 나쁘다는 것을 이해했습니다. :) – netwer