2012-10-17 45 views
-2

我的目標是讓使用LINQ通過查找ID,該記錄的主鍵相匹配的用戶輸入來刪除數據庫表中的記錄刪除功能。無法確定neccessary類型數據庫實體

  • MyDBEntitiesClass是函數需要傳遞它告訴它來搜索什麼DataTable中的說法。

  • IDontKnowWhatType是我要求幫助確定的類型。

  • MyPrimaryKey需要被引用MyDBEntitiesClass的主鍵的東西替換。

  • TestDatabaseEntities是通過生成從我現有的SQL Server數據庫的實體模型創建的連接字符串的名稱。

public static void DeleteFrom(IDontKnowWhatType MyDBEntitiesClass) 
{ 

var dbEntities = new TestDatabaseEntities(); 

    //Prompt the user for an ID 
    Console.WriteLine("Select ID for deletion."); 

    // save the ID to IDtoMark 
    int IDtoMark = int.Parse(Console.ReadLine()); 
    try 
    { 
     // return a single record that matches IDtoMark 
     MyDbEntitiesClass x = dbEntities.MyDbEntitiesClass.Single(x => x.myPrimaryKey == IDtoMark); 
     //Remove the marked record, and save changes 
     dbEntities.MyDbEntitiesClass.Remove(x); 
     dbEntities.SaveChanges(); 
    } 
    catch(Exception ex) 
    { 
     Console.WriteLine(ex.Message); 
    } 
} 

回答

0

您可以通過實現Repository模式實現這一目標。

我猜你正在使用實體框架。對於你有泛型類。

public class Repository<T> where T : class 
{ 
    private DbContext dbContext; 
    private DbSet<T> DbSet { get; set } 
    public Repository(dbContext) 
    { 
     this.dbContext = dbContext; 
     this.DbSet = this.dbContext.DbSet<T>(); 
    } 

    public void Delete(int id) 
    { 
     T entity = DbSet.Find(id); 
     DbSet.Remove(entity); 
     dbContext.Save(); 
    } 

} 
+0

阿西夫,感謝您的幫助。有您的代碼示例在幾個簡單的語法錯誤是Visual Studio的修正,現在我實現它。 – ArmorCode

相關問題