DataContext中的C#Generic Table

时间:2014-11-08 03:28:01

标签: c# wpf generic-collections

我正在尝试创建一个通用的WPF表单或页面,在调用时,它将从LINQ表中加载数据。这是概念:

我在LINQ DataContext中有三个表相同(除了其中的数据)

TypeIDType是列

我想将这些表中的数据一般传递到我的第二种形式,具体取决于用户选择的表格(基本上它们可以缩小所述Type的对象列表。

我已经看到了一些回复,(特别是对这个问题的接受答案LINQ query with a generic table)非常接近我正在寻找的,但并不完全。我对上述答案的一个问题是T must be a reference type

我已经做了更多的搜索,并找到了更多的答案,如:

someClass<T> : <T> where T

但不幸的是,这些更远离我自己的背景,我无法理解正在发生的事情的两个概念。下面我发布了我希望做的事情。

someDataContext db = new someDataContext();

private void pageLoader<T>(){
    newPage n = new newPage(T) //This is where I was hoping I could pass the table(s) to the constructor.
}

这是构造函数:

newPage(T){
    listBox l = new listBox();
    l.datasource = T;
}

任何方向的任何帮助都会有所帮助(除了MSDN,请。我去过那里,我还是迷路了。)

1 个答案:

答案 0 :(得分:1)

让我们从顶部开始。 LINQ只是Language Integrated Query的缩写。它可以与Lambda互换。不同的语法,但都完成相同的任务。查询集合或数据源。见http://msdn.microsoft.com/en-ca/library/bb397926.aspx

您指的是创建数据库的EntityFramework Code First方法。 LINQ只是一种访问和操作其中信息的方法。

除此之外,你指出的是通用方法和通用类。 T只是泛型类型的标准命名约定。你可以使用你喜欢的任何表示。如果您要传递实体,可以使用TEntity作为示例。

参见http://www.dotnetperls.com/generic-method     http://www.dotnetperls.com/generic

当你看到someClass里面有T时,这是类型参数的约束。

最后,你一直在等待......

https://codereview.stackexchange.com/questions/19037/entity-framework-generic-repository-pattern

以下内容应该让您走上正确的道路。

http://blog.gauffin.org/2013/01/repository-pattern-done-right/&lt; - 这将是一个更好的入门教程