Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何使用linq to sql更改表中字段的名称?_C#_Sql_Linq - Fatal编程技术网

C# 如何使用linq to sql更改表中字段的名称?

C# 如何使用linq to sql更改表中字段的名称?,c#,sql,linq,C#,Sql,Linq,所以,我最近一直在学习LINQtoSQL,我用它来查询记录,但对于我这样的人,我不知道如何更改表的字段。我非常感谢你们的帮助,伙计们: using (var db = new DataClasses1DataContext()) { var ns = from nod in db.Nodes where nod.Name == "MFMN"

所以,我最近一直在学习LINQtoSQL,我用它来查询记录,但对于我这样的人,我不知道如何更改表的字段。我非常感谢你们的帮助,伙计们:

 using (var db = new DataClasses1DataContext())
            {
                var ns = from nod in db.Nodes
                         where nod.Name == "MFMN"
                         select nod;
                int pop = db.Nodes.Count();
                foreach (var n in ns)
                {
                    Console.WriteLine(n.NodeID + " " + n.lkpNodeType + " " + n.Name + " " + n.DeploymentID);

                }
            }
只需创建一个类似:

然后:

foreach (var n in ns)
{
    Console.WriteLine(n.Identification..... //rest of the fields

}

但是,您必须在代码中指定所需的所有字段。当您只想选择特定列而不是所有列时,它也很有用

更改表的字段是什么意思?是否要为现有字段使用不同的名称/别名,例如NodeID,是否需要ID?确切地说,就像将字段从NodeID修改为类似标识的内容一样。我可以使用linq而不是sql studio管理来实现这一点吗?因此我还必须在表中列出其他字段?我不能只修改一个?另外,是否需要执行db.submitOnChange或字段名称将自动更改?如果需要映射多个属性,可以使用Automapper。@Rozen,是的,您还必须指定其他字段,您可以只指定它们的名称,而不指定别名。对于问题的第二部分,db.SubmitChanges不会更改表中的字段名。您的查询只是以匿名类型投影结果,它不会更改数据库上的任何内容,因此这就像给字段提供别名,而实际表字段的名称根本无法更改?除了使用sql在数据库中手动执行此操作之外?@Rozen,是的,这是正确的,或者您可以通过C代码更改它,执行sp_rename,但随后您还需要创建/刷新dbml。
foreach (var n in ns)
{
    Console.WriteLine(n.Identification..... //rest of the fields

}