我的目标是创建一个删除函数,该函数使用LINQ通过查找与记录主键匹配的用户输入的id来从数据库表中删除记录。
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 :(得分:0)
您可以通过实现Repository Pattern来实现此目的。
我猜你正在使用实体框架。为此你有通用类。
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();
}
}