在现有结构中添加新类时遇到问题。我将尽可能清楚地解释我的问题
public interface Imust
{
string Name { get; set; }
string File { get; set; }
string RowKey { get; set; }
string Time { get; set; }
string PartitionKey { get; set; }
}
public class TA : TableServiceEntity, Imust
{
public string Time { get; set; }
public string Name { get; set; }
public string File { get; set; }
}
public class TB : TableServiceEntity, Imust
{
public string Time { get; set; }
public string Name { get; set; }
public string File { get; set; }
}
public class TC : TableServiceEntity, Imust
{
public string Time { get; set; }
public string Name { get; set; }
public string File { get; set; }
}
public class _Table <T> : _Account where T : Imust
{
}
在这里,上述 3 个类在我的项目中实现为表,其属性作为其列。我必须在每个类中实现接口,因为在泛型类中我放置了接口约束。TableServiceEntity 类包含 RowKey 和 PartitionKey 的实现。并且这个类在所有 3 个实体中也是继承的。
问题:现在我必须在我的应用程序中添加一个新表。所以为此我必须在这里添加一个新类
public class TD : TableServiceEntity
{
}
我不希望此类实现 Imust 接口,因为它不包含这些列。但是我必须将它作为泛型类中的参数传递_Table
。因为这个新类具有不同的列,但它执行与其他 3 个实体相同的功能。现在我将如何在维护现有结构的同时添加这个新类?
请建议我为这个问题提供更好的解决方案?
编辑
是的,我可以将约束 TableServiceEntity 作为基类。但是在泛型类_Table
中,很少有对File
属性进行操作的函数,例如
public T AccessEntity(string Id = "0", string File = "0")
{
return (from e in ServiceContext.CreateQuery<T>(TableName)
where e.RowKey == Id || e.File == File
select e).FirstOrDefault();
}
如果我删除了这个接口约束,那么它会显示一个错误T does not have a defination for File
。