我正在尝试创建一个通用的WPF表单或页面,在调用时,它将从LINQ表中加载数据。这是概念:
我在LINQ DataContext中有三个表相同(除了其中的数据)
TypeID
和Type
是列
我想将这些表中的数据一般传递到我的第二种形式,具体取决于用户选择的表格(基本上它们可以缩小所述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,请。我去过那里,我还是迷路了。)
答案 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; - 这将是一个更好的入门教程