LINQ:获取表列名称
使用LINQ,如何获取表的列名? C#3.0,3.5框架
我假设您的意思是使用LINQ to SQL,在这种情况下,请查看DataContext.Mapping属性。 这就是我使用的。
如果你不是那个意思,也许你可以详细说明你想要实现的目标?
也许现在为时已晚,但是我通过这段代码解决了这个问题
var db = new DataContex(); var columnNames = db.Mapping.MappingSource .GetModel(typeof(DataContex)) .GetMetaType(typeof(_tablename)) .DataMembers;
下面的代码将从返回表的所有列名称开始工作
var columnnames = from t in typeof(table_name).GetProperties() select t.Name
我偶然发现这个问题寻找同样的事情,并没有在这里看到一个非常好的答案。 这就是我提出的。 只需在C#表达式模式下将其放入LINQPad即可。
from t in typeof(UserQuery).GetProperties() where t.Name == "Customers" from c in t.GetValue(this,null).GetType().GetGenericArguments()[0].GetFields() select c.Name
根据需要修改。
我在LinqPad中使用了这段代码
from t in typeof(table_name).GetFields() select t.Name
在数据上下文中使用ExecuteQuery方法并执行此SQL脚本:
var columnNames = ctx.ExecuteQuery ("SELECT name FROM sys.columns WHERE object_id = OBJECT_ID('your table name');");
这将为您提供一个IEnumerable
其中包含您指定的表中的所有列名。
当然,如果您需要,您可以始终从SQL Server的sys.columns
目录视图中检索更多信息(例如数据类型,最大长度)。
使用reflection迭代L2S类的属性
如果您正在讨论获取映射表的列,请参阅此答案以了解如何获取列属性。 从那里你可以得到列名,类型等。
var query = from x in DataBase.Table_Name select x.Column_Name;
sp_help’TableName’
LinqPad SQL窗口到ms sql server的选项
在LinqPad:
TableNames.Take(1)有效。
输入速度很快。 (虽然你处于一个理想的世界,但不选择任何行会更好。)
请注意,它是TableName的复数forms。 您也可以执行Take(0)并查看SQL结果选项卡。
上述就是C#学习教程:LINQ:获取表列名称分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/1033594.html