동일한 스키마의 두 데이터베이스가있는 경우 두 데이터베이스간에 레코드를 쉽게 전송할 수 있습니까? 도중에 몇 가지 추가 작업을 수행해야하고 전송할 레코드를 나타내는 개체를 사용하면 훨씬 쉽게 작업 할 수 있으므로 SQL에 LINQ를 사용하고 있습니다. 이것은 소규모 도우미 응용 프로그램이므로 SSIS는 아마도 과도한 공격 일 수 있으며 SQLBulkCopy를 사용하면 도중에 개체를 쉽게 조사 할 수 없습니다.LINQ to SQL을 사용하여 데이터베이스간에 복사
는 내가 뭘하고 싶은 것은 이것이다 :
분명한 이유, 즉 메시지와 함께 예외가 발생하지만public static void TransferCustomer
(DBDataContext DCSource,
DBDataContext DCDest,
int CustomerID)
{
Customer customer;
using (DCSource = new DBDataContext(SourceConnStr))
{
customer = DCSource.Customers
.Where(c => c.CustomerID == CustomerID)
.Single();
}
using (DCDest = new DBDataContext(DestConnStr))
{
DCDest.Customers.InsertOnSubmit(customer);
DCDest.SubmitChanges();
}
}
:
시도가 부착 또는 추가하게되었습니다 새로운 DataContext로부터로드되었을 가능성이있는 엔티티. 지원되지 않습니다.
public static Customer Clone(this Customer customer) { return new Customer() { Name = customer.Name, Email = customer.Email etc... }; }
을 다음 복제 된 항목을 삽입 :
나는이 같은 개체의 단순 복사본을 수행하여이 피해 갈 수 있습니다. 테이블의 관계를 나타내는 참조가 아니라 문제의 필드 만 복사하면 정상적으로 작동합니다. 그러나 조금 오래되었지만 내가하고있는 방식은 Clone 메서드의 모든 필드를 수동으로 할당해야합니다. 누구나 쉽게이 방법을 제안 할 수 있습니까? 내가 알고 싶은 두 가지 있습니다 :
- 는 SQL에 LINQ 수는 쉬운 방법으로이 작업을 수행
- 삽입하는 얕은 복사본을 만들 반사를 사용하는 좋은 방법이 있나요?
감사합니다.
을 시도하지만, 내가 사용하는 전용 경량 도우미 응용 프로그램입니다. 각 배치의 여러 테이블에 50 개 이상의 행을 전송할 것으로 예상하지 않기 때문에 SSIS가 과도하게 과잉이라고 생각합니다. 객체 당 복제 방법을 사용하는 현재 솔루션은 정말 멋지게 작동하지만 멋지지 않습니다. 더 많은 테이블을 추가해야하므로 더 많은 복제 방법을 작성하기 전에 더 나은 방법을 찾고 싶었습니다! –