LINQ:获取表详细信息

我正在使用LINQPad,我想知道表的架构细节。

我知道我是用SQL做的:

SELECT column_name,* FROM information_schema.columns WHERE table_name = '{table_name}' ORDER BY ordinal_position 

我怎么能用LINQ做到这一点?

LINQ to SQL上下文有一个Mapping属性,您可以将其用于此类事情。 像您提供的查询可能看起来像这样:

 from t in context.Mapping.GetTables() where t.TableName == "[table_name]" from c in t.RowType.DataMembers orderby c.Ordinal select new {columnName = c.Name, columnInfo = c} 

有关详细信息,请参阅此答案 。

 MetaTable t = MyDataContext.Mapping.GetTables().Where( i => i.TableName == "TABLENAME").SingleOrDefault(); PropertyInfo[] fields = t.RowType.InheritanceRoot.GetType().GetProperties(); 

‘fields’将包含列的名称和类型。

在LINQ to SQL中,您可以尝试将这些视图引入模型。 如果这不起作用,您可以创建一个检索信息的存储过程,然后LINQ to SQL映射存储过程并将其作为函数执行。