ASP.Net tablosu ile bir entity nasıl ilişkilendirilir?

Emretkkn

Hectopat
Katılım
13 Kasım 2019
Mesajlar
215
Yer
İzmir
Daha fazla  
Cinsiyet
Erkek
Meslek
Öğrenci
Arkadaşlar öncelikle projemde entity Framework Core kullanıyorum ve 2 farklı contexte sahibim. Contextleri aşağıya ekliyorum.

C#:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Identity.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore;

namespace shopapp.webui.Identity
{
 public class ApplicationContext : IdentityDbContext<User>
 {
 public ApplicationContext(DbContextOptions<ApplicationContext> options) : base(options)
 {

 }

 }
}

Aspnetusers tablosuna kolon eklemek için kullandığım sınıfım:

C#:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Identity;

namespace shopapp.webui.Identity
{
 public class User : IdentityUser.
 {
 public string FirstName { get; set; }
 public string LastName { get; set; }
 public List<Comment> Comments { get; set; }
 }
}

Uygulamanın ana contextini ekliyorum:

C#:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.EntityFrameworkCore;
using shopapp.data.Configurations;
using shopapp.entity;

namespace shopapp.data.Concrete.EfCore
{
 public class ShopContext : DbContext.
 {
 public ShopContext(DbContextOptions options) : base(options)
 {

 }

 public DbSet<Product> Products { get; set; }
 public DbSet<Comment> Comments { get; set; }
 public DbSet<Category> Categories { get; set; }
 public DbSet<Cart> Carts { get; set; }
 public DbSet<CartItem> CartItems { get; set; }
 public DbSet<Order> Orders { get; set; }
 public DbSet<OrderItem> OrderItems { get; set; }

 // protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
 // {
 // optionsBuilder.UseSqlite("Data Source=ShopDb");
 // }

 protected override void OnModelCreating(ModelBuilder modelBuilder)
 {
 modelBuilder.ApplyConfiguration(new ProductConfiguration());
 modelBuilder.ApplyConfiguration(new CategoryConfiguration());
 modelBuilder.ApplyConfiguration(new ProductCategoryConfiguration());
 modelBuilder.Seed();
 }
 }
}

Probleme gelecek olursak şu şekilde; aspnetusers tablosunu kendi oluşturduğum comment entityle ilişkilendirmek istiyorum fakat iki farklı context üzerinden nasıl yapacağımı bir türlü anlayamadım.comment Entity'sini ekliyorum:

C#:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;

namespace shopapp.entity
{
 public class Comment.
 {
 public int Id { get; set; }
 public string Title { get; set; }
 public string Body { get; set; }
 public Product Product { get; set; }
 public int ProductId { get; set; }
 public User User { get; set; }
 public string UserId { get; set; }
 }
}

Önerilerinizi bekliyorum.
 
Performans amaçlı yapmadıysanız 2 context kullanmanıza gerek yok. Ha yok illa iki databaseim olsun derseniz yorumların UserId lerini manuel verip userları diğer co textten manuel çekmeniz lazım.
 
Db tarafında bağlayamazsınız farklı veritabanları olduğunu düşünürsek. Anca farklı farklı çekip in memoryde join edebilirsiniz. Bunun yerine tek contexten gitmeniz daha sağlıklı olur.
 
Tek veri tabanım var iki context tek veritabanına bağlı. Identity kütüphanesini kullanan application context web katmanında, shop context ise data katmanında çalışıyor.
 

Dosya Ekleri

  • db.jpg
    db.jpg
    50,9 KB · Görüntüleme: 4

Yeni konular

Geri
Yukarı