01/10/2018, 10:04
Không muốn override getter, setter từ superclass
Mình có 1 class Model như sau:
public class A
{
[System.ComponentModel.DataAnnotations.Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public long Id { get; set; }
public virtual int FAQType
{
get
{
return _FAQType;
}
set
{
_FAQType = value;
}
}
protected int _FAQType;
}
Và class ViewModel kế thừa từ Model
public class B: A
{
[Required]
public override int FAQType { get; set; }
}
Mình gặp vấn đề là khi sử dụng FAQType của lớp B thì nó không kế thừa từ getter, setter của class A
Do mục đích của mình tạo ra lớp B là để chỉ chưa các data annotation để validation và mình không muốn getter, setter ở lớp B bị override
Cho mình hỏi có cách nào để FAQType sử dụng getter, setter của lớp A không ?
Bài liên quan
Khi class B kế thừa class A thì trong B đã có property FAQType rồi. Tại sao bạn lại khai báo 1 property FAQType khác override nó? Đó là lí do bạn không xài được getter, setter của A.Cứ để
là được rồi. Vì trong A property này là Key thì đâu cần phải add attribute Required
Cảm ơn bạn đã trả lời, property Id mới là key nhen bạn, cái code trên là ví dụ á bạn, mình có thể thêm nhiều annotation hơn.
Mục đích của mình là chia mấy cái annotation về validate riêng ra 1 class nên mình mới override property, nhưng mình lại muốn nó không override getter, setter.
Bạn có cách nào không ?
Hi Đặng Duy Tân.
"Không muốn override getter, setter từ superclass " Ý bạn là dùng get set của lớp cha ?
Đúng rồi bạn @Phong_Ky_Vo , nhưng mình vẫn muốn override property
Thì bỏ cái virtual ở lớp cha đi thì lớp con có property của lớp cha làm property của nó.
Muốn override thì dung new.
Ok, cảm ơn bạn @Duong_Act, mình có đọc new này rồi mà không thử, đúng là bị lú mà