C# LinQ查询生成器到C中的.cs文件

C# LinQ查询生成器到C中的.cs文件,c#,linq,linq-to-sql,code-generation,C#,Linq,Linq To Sql,Code Generation,正如您所知,我们使用LinQ技术来创建SQL类,以便将结果发送到SQL。如果我在SQL中有一个名为User的表,我会像编写查询一样使用C语言编写查询 List<User> allUsers = (from s in dataContext.Users select s).ToList(); 我们称之为CRUD服务创建更新删除 我的问题是,如果我有一个表需要的CRUD超过40+,我需要编写相同的代码。写起来要花很多时间。是否有任何工具ex生成器可以从给定的SQL Con获取表名,并将

正如您所知,我们使用LinQ技术来创建SQL类,以便将结果发送到SQL。如果我在SQL中有一个名为User的表,我会像编写查询一样使用C语言编写查询

List<User> allUsers = (from s in dataContext.Users select s).ToList();
我们称之为CRUD服务创建更新删除

我的问题是,如果我有一个表需要的CRUD超过40+,我需要编写相同的代码。写起来要花很多时间。是否有任何工具ex生成器可以从给定的SQL Con获取表名,并将基本方法CRUD写入.cs文件?如果不是,我会用C写一个工具,但首先我想知道。在谷歌搜索了一点,但找不到足够的信息

编辑:在等待答案时,我开始键入一个工具。它将是这样的,但我会非常高兴,如果一个工具已经用c编写:


查看Visual Studio-T4的文本模板转换工具包。

使用PLINQO和Codesmith组合->

goood,继续,创建一个,并让我知道:@Zein Shaikh正如我所说的,如果没有任何工具,我需要编写它,是的,当我找到工具或编写工具时,我会让你知道:这与我要找的非常接近。检查更多,将向您返回反馈。谢谢。好的,CodeSmith的工具真的很好,有点复杂,但是如果你解决了如何使用它,它很容易。谢谢你的回答。这个工具可以被接受为一个解决方案。是的,我同意它有点复杂,但一旦你得到它的权利,然后它的微风。很久以前,当LINQ还不在的时候,我就使用了这个工具。所以我把它和netTiers结合使用
// Update Query

User u = (from s in dataContext.Users where s.Id.Equals(1) select s).First();

u.Name = "serkan";

dataContext.SubmitChanges();
private List<string> myClasses = new List<string>();
        private const string myDataContextName = "SurfTurkeyDataContext";

        private void btnGenerate_Click(object sender, EventArgs e)
        {
            try
            {
                StringBuilder sb = new StringBuilder();

                sb.AppendLine("using System;");
                sb.AppendLine("using System.Collections.Generic;");
                sb.AppendLine("using System.Linq;");
                sb.AppendLine("using System.Text;");
                sb.AppendLine(Environment.NewLine);
                sb.AppendLine("namespace LinqToCsGenerator");
                sb.AppendLine("{");
                sb.AppendLine(Environment.NewLine);

                //Class Initilize
                sb.AppendLine("public class Users");
                sb.AppendLine("{");

                foreach (string item in myClasses)
                {
                    sb.AppendLine(Environment.NewLine);

                    // Select All Method
                    sb.AppendLine(String.Format("public List<{0}> GetAll{0}()", item));
                    sb.AppendLine("{");
                    sb.AppendLine(Environment.NewLine);
                    sb.AppendLine(String.Format("{0} dc = new {0}();", myDataContextName));
                    sb.AppendLine(Environment.NewLine);
                    sb.AppendLine(String.Format("List<{0}> all{0} = (from s in dc.{0} select s).ToList();", item));
                    sb.AppendLine(Environment.NewLine);
                    sb.AppendLine(String.Format("return all{0};", item));
                    sb.AppendLine(Environment.NewLine);
                    sb.AppendLine("}");
                    sb.AppendLine(Environment.NewLine);

                    // Insert Method
                    // Delete Method
                    //.
                    //.
                    //.
                    //.
                }

                sb.AppendLine("}");
                sb.AppendLine("}");

                System.IO.File.WriteAllText(@"D:\deneme.cs", sb.ToString());
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            myClasses.Add("Users");
            myClasses.Add("Products");
        }