OK
Published on

Entity Framework Generate İşlemine Müdahale Etmek

Authors
  • avatar
    Name
    Oğuzhan Kırçalı
    Twitter

Bir EntityFramework’üm olsa hangi tabloyu generate edip etmeyeceğini bana sorsa ne güzel olur dedim ve aşağıdaki gibi birşey öğrendim.

Modelim.Context.cs dosyasında her tablonun oluşturulduğunu göreceksiniz. Öncelikle buraya eklenmesini engellemem gerek. Bunun için Modelim.Context.tt dosyasındaki iki adet döngüye müdehale etmem gerekiyor.

Döngü-1:

foreach (var entitySet in container.BaseEntitySets.OfType<EntitySet>())

Döngü-2:

foreach (var entitySet in container.BaseEntitySets.OfType<EntitySet>())

Bu döngülerin ikisinde de örneğin;

if (entitySet.Name.StartsWith("ABC"))
	continue;

diye belirtirsem; ABC ile başlayan tablorı oluşturmayacaktır fakat, bu yeterli değil. Bir de Modeliniz.tt dosyasındaki, döngüsünde bunu uygulamanız gerekmektedir.

foreach (var entity in typeMapper.GetItemsToGenerate<EntityType>(itemCollection))
{
	...
	if(entity.Name.StartsWith("Bir"))
		continue;

Üstteki iki döngüde entitySet.Name‘i alırken 3. döngüde entity.Name‘i kullandığımıza dikkat edin.

Faydalı olması dileğiyle.