2016-03-25 23 views
1

LINQ to SQL'de, benim bir nesne koleksiyonunu eklemek istediğimde InsertAllOnSubmit kullanacağım. Anlamıyorum ne zaman sadece InsertOnSubmit kullanmanın aksine InsertAllOnSubmit<T> kullanmanız gerekir?InsertAllOnSubmit <TSubEntity> ne zaman kullanılır?

ya ya genel tür parametresi açısından farklar nelerdir. LINQ tanımından

,

public void InsertAllOnSubmit<TSubEntity>(IEnumerable<TSubEntity> entities) 
    where TSubEntity : TEntity; 

böyle kullanılarak:

db.SlickTableEntries.InsertAllOnSubmit<SlickTableEntry>(entries); 
db.SubmitChanges(); 

vs bu gibi kullanarak:

db.SlickTableEntries.InsertAllOnSubmit(entries); 
db.SubmitChanges(); 

girişleri bir List<SlickTableEntry> olduğunu.

Bunu nasıl düzgün kullanmalıyım? Hangi sürüm daha iyi?

+0

Listede birden fazla varlığa sahip olduğunuzda 'InsertAllOnSubmit' kullanmak daha uygundur. –

cevap

1

Size bir çağrıda birden kuruluşlar eklemek sağlayan bir kolaylık yöntemidir. Bu size foreach döngüsünü kazandırır. Veritabanına erişme şeklini değiştirmez, ancak decompiled kodu (minik efekt) göre biraz daha az verimli olabilir. senin varlıkları bir miras ilişkisiyle olup olmadığını türetilmiş bir tür geçirebilmesi için

genel tür parametre vardır. C# kovaryans desteğinden başlayarak buna artık gerek yok. bir şey durumda kullanılmalıdır

?

Eğer varlıkların listesini varsa

liste sürümünü kullanın. Aksi halde, tek öğe sürümünü kullanın. Genel tür argümanını belirtmeyin. Bu asla gerekli değildir ve sadece kodu karıştırır.

Hiçbir fonksiyonel farklılık yoktur. Eğer derlerse çalışır. Sadece tür argümanını bırak ve derleyici uygun şekilde doldurur.

İlgili konular