2017-11-11 61 views
0

我设计了一个基于asp.net样板模块-0的新解决方案,我需要存储与每个实体相关的附件(每行表格)在数据库中单独的表中。基本上我必须假定一个新的实体与其他实体具有导航属性有关,并且这种方法意味着每次我在此解决方案中设计新实体时,我都必须将其引用到附件实体,因此我决定为这个特定问题设计一个更好的解决方案。我想为附件实体创建一个名为“IEntityAttachment”或“EntityAttachment”的基类或接口,这意味着实体类必须从此接口或类派生。 问题是“这种方法可行吗?”和“这个问题最好的办法是什么?”为baseEntity定义EntityAttachment以便将数据库中的所有文件集成到一个表中

第一种方法: First Approach

第二种方法(我想):

Second Approach

+1

显示相关的代码和预期使用。 – aaron

+0

谢谢。我完成了我的问题。 –

+0

这是可能的。你有什么尝试? – aaron

回答

1

是,这种方法是可行的。

首先,定义EntityAttachmentAttachment类。

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> {} 

然后,定义ArticleNewsSlider和类:

public class Article : BaseEntity 
{ 
    // ... 
} 

public class News : BaseEntity 
{ 
    // ... 
} 

public class Slider : BaseEntity 
{ 
    // ... 
} 
+0

非常感谢。有没有办法修改asp.net样板模块零预定义的“BaseEntity”或“FullAuditEntity”并添加新的属性,如AttachmentId或...? 如果答案是“否”,我可以在Abp结构中定义和实现这些类吗? –

+1

你为什么要那样做?只需定义像我上面描述的实体。 – aaron

+0

当然,但我与代码的地方有问题。我在abp.core项目中假设了BaseEntity类。但我不知道哪里是解决方案中的最佳位置,以将此类定义为父类。 –

相关问题