# ORM ve Entity Framework Nedir?

## ORM

İlişkisel veri tabanındaki bir tabloyu uygulama tarafındaki bir object ile ilişkilendiren bir yapıdır.

## Entity Framework

.Net uygulamalarında kullanılan bir ORM türüdür.&#x20;

EF yi uygulamamıza dahil ettikten sonra, EF hangi database türü (MSSQL, MySQL, SQLite, Oracle) ile çalışacaksa o database türünü anlayacak ve iletişimimizi sağlayacak bir provider ı da uygulamaya kurmak gerekir. EF ile çalışırken database e direk müdahalede bulunmamıza gerek yok. EF ile uygulama üzerinden gerekli sql işlemlerini yapabiliriz. O yüzden database türü önemli değildir.

EF, de veri tabanı yönetimi **LINQ** sorguları ile yapılır. **LINQ** sorguları database e iletilmeden EF Core tarafından **SQL** koduna dönüştürülür.

**Context** class ındaki bir liste, database deki aynı isimde bulunan bir tablo ile map edilir (eşleştirilir).\
Örneğin;\
DbSet Student {get; set;} (List) <-----> Student (Table)

### Code Firts

EF Core da yazdığımız bir connection string (veritabanı bağlantısı) yapıldığı zaman verilen adreste bir database yok ise bu durumda o adreste database kendi başına oluşur. Context listesinde oluşturulan list ler tarafından database ve tabloların otomatik olarak oluşturulmasıdır.

### Database Firts

EF Core da yazdığımız bir connection string (veritabanı bağlantısı) yapıldığı zaman verilen adreste bir database in olması ve o database in kullanılmaya başlanmasıdır.

## Provider (Driver)

Bir database serverına bir uygulama üzerinden bağlanmak için kullanılan yapıya denir.

## Context (Context Class)

Entity Framework ile kullanılan Context, veri tabanı işlemlerinin yürütüldüğü class tır. **`DbContext`** class ından türetilir. Context class ı içierisinde **`DbSet<>`** türünde list tanımlamaları yapılır.

{% hint style="warning" %}
Entity Framework uygulamasının çalışması için;

* Bir providerın yüklü olamsı gerekmektedir.
* Dotnet-ef nin kurulu olması gerekmektedir.
* Microsoft.EntityFrameworkCore.Design kütüphenesinin kurulu olması gerekmektedir.

Migrations oluşturmak için;

* dotnet ef migrations add MigtareAdı

Veri tabanı oluşturmak için (Bekleyen tüm Migration ları uygulamak için);&#x20;

* dotnet ef database update
  {% endhint %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://cnahmet.gitbook.io/asp-net-notlarim/orm-entity-framework-core/orm-ve-entity-framework-nedir.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
