我有一个模型,看起来像这样:如何抽象实体框架模特属性
public class Task : ITask
{
public int DocumentId { get; set; }
public virtual Document Document { get; set; }
public TaskType TaskType { get; }
public string Value { get; }
}
现在,这个类是直接在DbContext
注册为DbSet
。 这意味着Document
属性必须是具体类型。我想让这个代码很容易测试,所以我希望将该属性作为接口,这是ITask
接口所要求的。解决这个问题的一般方法是什么?
我想到的一种方法是将所有这些类放在单独的程序集中,但似乎有点不合适。
编辑:ITask
接口在不同的组件中定义,因此它不应该知道Document
类型。
一个想法可以实现'Document:IDocument',将'ITask'定义为'ITask IDocument getDocumnet();并且最后提供一个实现:公共类任务:ITask { }公共虚拟文档文档{get;组; } public IDocument getDocumnet(){return this.Document; ' }'。但未经测试。 –