如您所知,我們使用LinQ技術生成SQL類來發送和獲取SQL結果。如果我有一個名爲用戶在SQL表中,我使用C#查詢,如將LinQ查詢生成器轉換爲C#中的.cs文件
List<User> allUsers = (from s in dataContext.Users select s).ToList();
或
// Update Query
User u = (from s in dataContext.Users where s.Id.Equals(1) select s).First();
u.Name = "serkan";
dataContext.SubmitChanges();
我們稱之爲CRUD服務(創建,更新,刪除)。
我的問題是,如果我有一個表需要CRUD超過40+,我需要編寫相同的代碼。編寫需要太多時間。是否有任何工具(前生成器)從給定的SQL Con獲取表名,並將基礎方法(CRUD)寫入.cs文件?如果沒有,我會用C#編寫一個工具,但首先我想知道。在google上搜索了一下,但找不到足夠的信息。
編輯:在等待答案時,我開始輸入一個工具。這將是這樣的,但我會很高興,如果工具已經用C#:)
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");
}
goood,去上,建立一個,讓我知道還有:) – 2010-11-16 19:23:53
@Zein謝赫正如我所說,如果心不是任何工具,我需要寫它,是的,我會讓你知道當我找到一個工具,或寫了一個工具:) – 2010-11-16 19:25:46