C# LinQ查询生成器到C中的.cs文件
正如您所知,我们使用LinQ技术来创建SQL类,以便将结果发送到SQL。如果我在SQL中有一个名为User的表,我会像编写查询一样使用C语言编写查询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获取表名,并将
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");
}