arasında kopyalamak için LINQ to SQL kullanarak, ikisi arasındaki kayıtları aktarmak için herhangi bir kolaylık var mı? Yol boyunca birkaç ek işlem yapmam gerektiğinden ve aktardığım kayıtları temsil eden nesnelerin bu kadar kolay olmasını sağlamak için SQL'e LINQ kullanıyorum. Bu küçük ölçekli bir yardımcı uygulama, SSIS muhtemelen overkill ve SQLBulkCopy kolayca yolda nesneleri sorgulamak için izin vermiyor.özdeş şemanın iki veritabanları Verilen veritabanları
Ne yapmak istiyorum şudur:
bilinen nedenlerle, bu mesaj ile bir istisna atar Amapublic 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();
}
}
:
bir girişimde takın veya ekleme yapılmıştır Yeni olmayan, belki başka bir DataContext'ten yüklenmiş olan varlık. Bu desteklenmiyor.
public static Customer Clone(this Customer customer) { return new Customer() { Name = customer.Name, Email = customer.Email etc... }; }
ve sonra klonlanmış madde eklenirken:
böyle nesnenin basit bir kopyasını yaparak bu yuvarlak alabilirsiniz. Yalnızca söz konusu alanları kopyalarım ve tablo ilişkilerini temsil eden herhangi bir referansı kullanmazsam, bu iyi çalışır. Ancak biraz uzun-sarmalı ve bunu yaptığım gibi, Clone yöntemindeki her alanı manuel olarak atamam gerekiyor. Bunu kolaylaştıracak herhangi bir yol önerebilir mi? Bilmek istediğiniz iki şey vardır:
- LINQ to SQL Can daha kolay bir şekilde bunu,
- ekler sığ bir kopyasını yapmak için yansıma kullanmanın güzel bir yolu var mı?
çok teşekkür ederiz!
deneyin ama bana kullanmak için sadece hafif bir yardımcı uygulamadır. Her partide 50'den fazla satırın çeşitli tablolara aktarılmasını beklemiyorum, bu yüzden SSIS'in muhtemelen aşırı olduğunu düşünüyorum. Nesne başına bir klon yöntemini kullanarak şu anki çözümüm gerçekten güzel çalışıyor, ama kendini beğenmiş gibi hissettiriyor. Daha fazla klonlama yöntemi yazmadan önce daha iyi bir yol bulmak istediğim için daha fazla tablo eklemem gerek! –