SubSonic 3/ActiveRecord를 사용하면 각 열을 열로 비교하지 않고도 두 레코드를 쉽게 비교할 수 있습니다. 예를 들어, 내가 (내 데이터베이스에서 각 테이블에 대한 사용자 정의 비교자를 작성하지 않고도) 이런 일을 수행하는 기능을하고 싶습니다 : 결국SubSonic 3/ActiveRecord - 두 레코드를 비교하는 쉬운 방법?
public partial class MyTable
{
public IList<SubSonic.Schema.IColumn> Compare(MyTable m)
{
IList<SubSonic.Schema.IColumn> columnsThatDontMatch = new...;
if (this.Field1 != m.Field1)
{
columnsThatDontMatch.add(Field1_Column);
}
if (this.Field2 != m.Field2)
{
columnsThatDontMatch.add(Field2_Column);
}
...
return columnsThatDontMatch;
}
}
을, 내가 정말 필요한 것은 테스트하는 기능입니다 기본 키 열을 제외하고 두 행이 같은지 확인합니다. 위의 의사 코드는 더 일반적인 형태입니다. 필자는 일치하지 않는 열을 가져 오면 어떤 열이 기본 키 필드인지 확인할 수 있습니다.
사용할 수있는 항목을 찾지 않고 Columns 속성을 검토했습니다. 이상적으로, 솔루션은 t4 파일에서 던져서 데이터베이스의 모든 테이블을 생성 할 수있는 것이 될 것입니다.
가장 좋은 방법은 테이블의 열에 대한 해싱 함수를 t4 템플릿에 추가하는 것입니다. 그렇다면 그것은 매우 간단합니다. 적절한 해싱 루틴을 구축하는 것이 문제가됩니다. : 잘 작동하는지 잘 모르겠다. 논평이 아닌 답변으로 언급했다. – BlackMael
ActiveRecord 개체의 모든 열을 비교하는 사용자 지정 비교기로이 작업을 수행 할 수 있습니까? – CmdrTallen