我最近使用EntityFramework来替换DataSet的使用。 EntityFramework中缺少数据集中的一个函数。
使用数据集,我可以使用现成的AddRow方法:
this.DataSet.CustomerDataTable.AddCustomerRow(int cId, int Name, int Telephone, ...)
此功能是自动生成的,表中的每一列都映射到一个参数。这是非常有用的,因为我不会忘记任何专栏。但是使用EntityFramework,这就是我能做的:
Customer newCustomer = new Customer();
newCustomer.Name = "John";
newCustomer.Telephone = "04xxxxxxxx";
...
context.Customers.Add(newCustomer );
如果不是参数化的AddRow方法,很容易忘记为其中一个字段赋值。由于我无法找到自动生成的AddEntity函数,我必须自己编写。我被告知这个功能是使用EntityFramework 4生成的。我使用6.1.1并且无法找到它。
请您告诉我如何找到这种方法或取得类似的结果,而不必自己编写方法?
答案 0 :(得分:0)
也许您正在寻找Asp.net MVC Framework
的模型绑定来自MSDN
DbSet.Add方法
将给定实体添加到已添加状态的集合下的上下文中,以便在调用SaveChanges时将其插入到数据库中。
顺便说一下,你的问题不是很清楚,在一个常见的MVC场景中,例如,模型的映射是由Model Binder
完成的。因此,如果您必须向DbSet添加新闻
public ActionResult Create([Bind(Include = "Title,Body,SubTitle")]News model){
if (ModelState.IsValid){
ApplicationDbContext.News.Add(model);
ApplicationDbContext.News.SaveChanges();
}
}
绑定的艰苦工作完全由Model Binder完成