读书人

DataContext.GetTable(Type type),该怎

发布时间: 2012-12-20 09:53:21 作者: rapoo

DataContext.GetTable(Type type)


var result = from obj in context.Plan
where obj.menuId == int.Parse(menuId)
select obj;
this.lvDetail.DataSource = result;
this.lvDetail.DataBind();


以上这段代码等于是读的Plan表,但是我现在想根据一个tableName的string动态的决定是从哪个表中读数据请问该如何实现,是不是能用DataContext.GetTable(Type type)方法,但是这个方法出来的是ITable,那我在写where子句时表中的字段就点不出了,请问这有什么办法解决?
[解决办法]
var result = from obj in context.Plan
where obj.menuId == int.Parse(menuId)
select obj;
this.lvDetail.DataSource = result;
this.lvDetail.DataBind();

[解决办法]
大家帮帮忙很急先谢谢大家了
[解决办法]
List<Plan>强制转化结果集

根据一个tableName的string动态的决定是从哪个表中读数据,没看懂!
[解决办法]
比如
tableName是"Plan"
var result = from obj in context.Plan
where obj.menuId == int.Parse(menuId)
select obj;
this.lvDetail.ItemTemplate = LoadTemplate("~/Template_Plan.ascx");
this.lvDetail.DataSource = result;
this.lvDetail.DataBind();

tableName是"Market"

var result = from obj in context.Market
where obj.menuId == int.Parse(menuId)
select obj;


this.lvDetail.ItemTemplate = LoadTemplate("~/Template_Market.ascx");
this.lvDetail.DataSource = result;
this.lvDetail.DataBind();


[解决办法]
难道我一定要通过if...else if...或switch挨个判断吗
[解决办法]
据说可以通过泛型解决
[解决办法]
路过学习 ,和谐接分 , 友情帮顶~!
[解决办法]
foren_whb大侠能具体说说怎么实现吗
[解决办法]
引用:
据说可以通过泛型解决



有同感

另外有一疑问:C#中有var声明变量的么?
[解决办法]
大侠们能不能说说具体怎么实现啊,真的很急,再次谢谢大家了
[解决办法]
引用:
另外有一疑问:C#中有var声明变量的么?

当然有,经常用
[解决办法]
http://cache.baidu.com/c?m=9d78d513d99d1af31bfa940f1a66d3716a2097124dc0a36468d5e35fe3674c363171e2cb30521013a4ce6b1102b83a28feb7762c385966f1d9df8939c0a6d76d6a9f2743771fd11755c419d89a1b7adc7bd647e9ad1beca7f23390a5cf809f12089b0d526d8784885c0610ca78f0636ba5f9c7&p=c634c64ad68002bc04bd9b7f0f0a&user=baidu
参考
[解决办法]
引用:
大侠们能不能说说具体怎么实现啊,真的很急,再次谢谢大家了

参考
[解决办法]
你这个是通过一个实体来动态选择对哪个数据表来进行操作,换句话说就是要操作的表名和类名可以不一致,但是结构一定要一致,可我的目的是不同的实体对应不同的表,我只要根据得到的tableName(是个string)来动态的决定是从哪个表中读数据就可以了而不是像修改我的实体类名,继续等待解答
[解决办法]
引用:
你这个是通过一个实体来动态选择对哪个数据表来进行操作,换句话说就是要操作的表名和类名可以不一致,但是结构一定要一致,可我的目的是不同的实体对应不同的表,我只要根据得到的tableName(是个string)来动态的决定是从哪个表中读数据就可以了而不是像修改我的实体类名,继续等待解答

你的意思是说你只是一个简单的全表检索,没有其他条件,仅仅是表名动态指定的??
如果是这样,那有什么难度可言
[解决办法]
如果带其他条件,并且条件可能不同,那没有好方法,用泛型也不行
[解决办法]
Expression
DLinq
http://blog.joycode.com/scottgu/archive/2008/01/09/113554.joy
[解决办法]
建议你写个table get类,里面重载每个表的get方法,这样一样能实现你的需求。

public class getTable()
{
public static IQueryable<A> get(A a)
{
......
}
public static IQueryable<B> get(B b)
{
......
}
......
}

[解决办法]
电风扇 山室大辅夫妇双方反反复复反反复复反反复复反反复复
------解决方案--------------------


我是来我是来我是来我是来我是来我是来我是来我是来我是来我是来我是来我是来我是来我是来我是来我是来我是来我是来我是来我是来我是来我是来我是来我是来我是来我是来我是来
[解决办法]
貌似没有满意的解决办法啊
[解决办法]
哈哈哈哈
[解决办法]
楼主和我一样的困惑。我用这个办法解决了:

#region 根据表名动态返回Linq表

public System.Data.Linq.ITable TableCount(string TableName)
{
BudGetNoDataContext dc = new BudGetNoDataContext();
Assembly assembly = Assembly.GetExecutingAssembly();
foreach (Type type in assembly.GetTypes())
{
if (TableName == type.Name)
{
return dc.GetTable(type);
}
}
return null;
}
#endregion

读书人网 >.NET

热点推荐