2014-11-08 36 views
0

我试图创建一个通用的WPF窗体或页面,当调用时,将加载LINQ表中的数据。这里的理念是:从DataContext的C#通用表

我有一个LINQ的DataContext三个表是相同的(除了内的数据)

TypeIDType是列

我想一般传递数据在这些表格根据用户选择哪个表格(基本上是这样它们可以缩小所述对象的列表的范围)

我已经看到了一些响应,(特别是对这个接受的答案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. 
} 

这里是构造函数:(。除了MSDN,请我一直在那里,我还是输了)

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

在任何方向上的任何援助将是有益的

回答

1

让我们从顶部开始。 LINQ仅仅是语言集成查询的缩写。它可以与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/ < - 这将是更加美好的起点教程

我看到一
+0

最有用的链接。非常感谢你。 – 2014-11-08 05:19:28

+0

非常欢迎。 :)谷歌是你的朋友。只要你知道要搜索什么。 – 2014-11-08 05:34:07

+0

知道要搜索什么,就是这个问题。术语词汇变得越来越难以驾驭。有时我只需要输入问题并希望有人能告诉我要搜索的内容。 – 2014-11-08 17:23:58