• 21-11-2021, 09:21:22
    #1
    Arkadaşlar, gördüğüm kadarıyla entityler , IEntity sınıfından miras alarak, ortak propertylerin tekrar yazmasını engelleniyor.
    Örnek Id kolonu her tabloda mevcut diye.

    Sormak istediğim , bazı tablolalarımda ortak IsActive IsDeleted gibi kolonlar var bunları IEntity sınıfına ekledim fakat.
    bazı tablolalar da Id kolonu haricinde bu kolonları tutmuyorum ve oluşmasını istemiyorum bunu nasıl ezebiliriz? ayrı bir IEntity sınıfı oluşturmadan..
  • 21-11-2021, 10:32:07
    #2
    Selam , eğer IsActive ve IsDeleted gibi propertylerinizin proje içerisindeki sadece bazı entityleriniz için impelement edilmesi gerekiyorsa bir ara birim daha oluşturarak örneğin IUser gibi bu arabirime IsActive ve IsDeleted propetylerinizi ekleyebilirsiniz bu durumda IUser , IEntity i implement etmeli . Böylece proje içerisinde kimi zaman IUser i kimi zaman sadece IEntity i implement eden sınıflar oluşturabilirsiniz.
  • 21-11-2021, 10:35:28
    #3
    bycyberchild adlı üyeden alıntı: mesajı görüntüle
    Selam , eğer IsActive ve IsDeleted gibi propertylerinizin proje içerisindeki sadece bazı entityleriniz için impelement edilmesi gerekiyorsa bir ara birim daha oluşturarak örneğin IUser gibi bu arabirime IsActive ve IsDeleted propetylerinizi ekleyebilirsiniz bu durumda IUser , IEntity i implement etmeli . Böylece proje içerisinde kimi zaman IUser i kimi zaman sadece IEntity i implement eden sınıflar oluşturabilirsiniz.
    Evet hocam çözümdür, merak ettiğim IUser, IArticle gibi tek tek class oluşturmadan, entity içerisinde IsActive IsDeleted gibi propertylerin db de oluşmaması için ezebilir miyiz diye de merak ettim.
  • 21-11-2021, 11:17:29
    #4
    ByQush adlı üyeden alıntı: mesajı görüntüle
    Evet hocam çözümdür, merak ettiğim IUser, IArticle gibi tek tek class oluşturmadan, entity içerisinde IsActive IsDeleted gibi propertylerin db de oluşmaması için ezebilir miyiz diye de merak ettim.
    Yazılım tasarım desenlerinde mantığında diğer yöntem geçerli, yapılabilir mi dersen abstract olarak tanımlarsan yapılabilir.
  • 21-11-2021, 11:24:54
    #5
    Maybell adlı üyeden alıntı: mesajı görüntüle
    Yazılım tasarım desenlerinde mantığında diğer yöntem geçerli, yapılabilir mi dersen abstract olarak tanımlarsan yapılabilir.
    public class Shipper:EntityBase,IEntity
    Shipper sınıfım bu şekil.

    EntityBase.cs
    public abstract class EntityBase
    {
    public virtual int Id { get; set; }
    public virtual bool Active { get; set; }
    public virtual bool IsDeleted { get; set; }
    }
    IEntity.cs
    public interface IEntity
    {
    }

    Shipper classımda bunlar geçerli fakat, Article.cs 'de sadece Id yi alıp diğerlerini ezmesini istiyorum (Article tablosuna Id dışında, Active, IsDeleted kolonu oluşmasın.)
  • 23-11-2021, 20:46:28
    #6
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Birinci yol
    [NotMapped] koyabilirsin başlarına

    public abstract class EntityBase
    {
    public virtual int Id { get; set; }
    [NotMapped]
    public virtual bool Active { get; set; }
    [NotMapped]
    public virtual bool IsDeleted { get; set; }
    }

    ikinci yol ? işareti koyarak null olabilirlik yapabilirsin.
    public abstract class EntityBase
    {
    public virtual int Id { get; set; }
    public virtual bool? Active { get; set; }
    public virtual bool? IsDeleted { get; set; }
    }

    Kolay gelsin...