【发布时间】:2017-10-05 12:44:05
【问题描述】:
我有一个看起来像这样的模型:
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(); },最后提供一个实现:public class Task : ITask { public virtual Document Document { get; set; } public IDocument getDocumnet(){ return this.Document; } }。但未经测试。
标签: c# entity-framework