这是我在这里提出的问题的延续。
简要总结:我有两个不同的数据库,变化很小(一个表和一个表中缺少它的外键),我希望我的使用 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中进行转换?