这是我在这里提出的问题的延续。
简要总结:我有两个不同的数据库,变化很小(一个表和一个表中缺少它的外键),我希望我的使用 Linq-To-Sql 的导入实用程序能够用数据填充两个数据库而不会重复逻辑。
我的第一种方法是使用dynamic将两个不同的数据库上下文存储在一个变量中,但这种方法不起作用,建议我为此目的使用接口。
现在我遇到了以下问题:
我从我的数据库上下文类中正确提取了接口:
public interface IDataContext
{
System.Data.Linq.Table<IFieldCollection> FieldCollections { get; }
System.Data.Linq.Table<IField> Fields { get; }
}
...但是为了能够通过两个不同的数据库上下文类来实现接口,我也必须用接口替换实际的 LINQ 类 ( FieldCollection, Field)。
现在我在返回Table<IFieldCollection>或Table<IField>在我的班级实施中遇到问题。db 上下文类的自动生成代码如下:
public System.Data.Linq.Table<FieldCollection> FieldCollections
{
get
{
return this.GetTable<FieldCollection>();
}
}
所以,为了在IDataContext这里实现,我需要将返回值更改为Table<IFieldCollection>. 然后如何在不从数据库中检索完整表的情况下Table<FieldCollection>在Table<IFieldCollection>我的属性 getter中进行转换?