为baseEntity定义EntityAttachment以便将数据库中的所有文件集成到一个表中
我设计了一个基于asp.net样板模块-0的新解决方案,我需要存储与每个实体相关的附件(每行表格)在数据库中单独的表中。基本上我必须假定一个新的实体与其他实体具有导航属性有关,并且这种方法意味着每次我在此解决方案中设计新实体时,我都必须将其引用到附件实体,因此我决定为这个特定问题设计一个更好的解决方案。我想为附件实体创建一个名为“IEntityAttachment”或“EntityAttachment”的基类或接口,这意味着实体类必须从此接口或类派生。 问题是“这种方法可行吗?”和“这个问题最好的办法是什么?”为baseEntity定义EntityAttachment以便将数据库中的所有文件集成到一个表中
第二种方法(我想):
是,这种方法是可行的。
首先,定义EntityAttachment
和Attachment
类。
public abstract class EntityAttachment : Entity {}
public class Attachment : EntityAttachment
{
// ...
}
接下来,定义BaseEntity
类引用上述类别:
public abstract class BaseEntity<TEntityAttachment> : Entity
where TEntityAttachment : EntityAttachment
{
public virtual int AttachmentId { get; set; }
public virtual TEntityAttachment Attachment { get; set; }
}
public abstract class BaseEntity : BaseEntity<Attachment> {}
然后,定义Article
,News
Slider
和类:
public class Article : BaseEntity
{
// ...
}
public class News : BaseEntity
{
// ...
}
public class Slider : BaseEntity
{
// ...
}
非常感谢。有没有办法修改asp.net样板模块零预定义的“BaseEntity”或“FullAuditEntity”并添加新的属性,如AttachmentId或...? 如果答案是“否”,我可以在Abp结构中定义和实现这些类吗? –
你为什么要那样做?只需定义像我上面描述的实体。 – aaron
当然,但我与代码的地方有问题。我在abp.core项目中假设了BaseEntity类。但我不知道哪里是解决方案中的最佳位置,以将此类定义为父类。 –
显示相关的代码和预期使用。 – aaron
谢谢。我完成了我的问题。 –
这是可能的。你有什么尝试? – aaron