linq to sql,如何定义DataContext而不指定Table属性

时间:2012-12-13 19:56:33

标签: windows-phone-7 linq-to-sql windows-phone

我的目的是使用linq to sql为Windows Phone创建一个通用的(不是C#含义)数据库模型。这种模型的用户应该能够将他的数据对象类型数组(用Table属性标记的类)传递给模型的contstructor,然后模型应该注意将相关表添加到数据库并为CRUD操作提供API。

但后来我发现,为了将表添加到数据库,您的数据上下文(继承自DataContext类的类)必须将每个表声明为属性!那令人尴尬。这个事实是否意味着我的想法无法实现?因为我显然无法在运行时向基于DataContext的属性添加属性。

所以我的问题是,我的判断是否正确?如果是,是否有一些解决此问题的解决方法?

提前致谢。

编辑:更好的问号,有人终于注意到这一点。

1 个答案:

答案 0 :(得分:1)

您不需要使用强类型DataContext(继承自DataContext的类并为每个表声明属性)。您可以执行以下操作

var context = new DataContext("connection string", new AttributeMappingSource());

var table = context.GetTable<T>();

其中T是某种标有Table属性的类型。