我的目的是使用linq to sql为Windows Phone创建一个通用的(不是C#含义)数据库模型。这种模型的用户应该能够将他的数据对象类型数组(用Table属性标记的类)传递给模型的contstructor,然后模型应该注意将相关表添加到数据库并为CRUD操作提供API。
但后来我发现,为了将表添加到数据库,您的数据上下文(继承自DataContext类的类)必须将每个表声明为属性!那令人尴尬。这个事实是否意味着我的想法无法实现?因为我显然无法在运行时向基于DataContext的属性添加属性。
所以我的问题是,我的判断是否正确?如果是,是否有一些解决此问题的解决方法?
提前致谢。
编辑:更好的问号,有人终于注意到这一点。
答案 0 :(得分:1)
您不需要使用强类型DataContext
(继承自DataContext
的类并为每个表声明属性)。您可以执行以下操作
var context = new DataContext("connection string", new AttributeMappingSource());
var table = context.GetTable<T>();
其中T
是某种标有Table
属性的类型。