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..
Asp.net Core IEntity sınıfı hakkında.
5
●59
- 21-11-2021, 10:32:07Selam , 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:28Evet 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.bycyberchild adlı üyeden alıntı: mesajı görüntüle
- 21-11-2021, 11:17:29Yazılım tasarım desenlerinde mantığında diğer yöntem geçerli, yapılabilir mi dersen abstract olarak tanımlarsan yapılabilir.ByQush adlı üyeden alıntı: mesajı görüntüle
- 21-11-2021, 11:24:54public class Shipper:EntityBase,IEntityMaybell adlı üyeden alıntı: mesajı görüntüle
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:28Kimlik 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...