entity-framework - 使用实体框架将动态表数据插入/更新到数据库的最佳方法
问题描述
我有一个动态表,用户可以在其中添加行数并在保存后相应地编辑它们。假设最初将 3 行数据保存到 db 并显示如下。现在,如果用户添加新行并更新现有行中的任何数据。我想插入新行并更新现有数据
我创建了自定义模型如下
public class Person
{
public string Teacher { get; set; }
public string ClassName { get; set; }
public List<PersonDetail> PersonDetail { get; set; }
}
public class PersonDetail
{
public int PersonId { get; set; }
public string Name { get; set; }
public string Email { get; set; }
}
这是我添加数据库时在 edmx 中生成的 EF 类
public partial class ClassInfo
{
public string Teacher { get; set; }
public string ClassName { get; set; }
public virtual ICollection<PersonDetail> PersonDetails { get; set; }
}
public class PersonDetail
{
public int PersonId { get; set; }
public string Name { get; set; }
public string Email { get; set; }
public virtual ClassInfo ClassInfo { get; set; }
}
我能够按如下方式循环和插入数据
public ActionResult SavePerson(Person person)
{
using (var context = new DEVEntities())
{
List<EF.PersonDetail> PersonDetails = new List<EF.PersonDetail>();
foreach(var p in person.PersonDetail)
{
EF.PersonDetail pd = new EF.PersonDetail();
pd.Name = p.Name;
pd.Email = p.Email;
PersonDetails.Add(pd);
}
context.SaveChanges();
}
}
是否有可能在不循环数据的情况下完成这项工作?
解决方案
推荐阅读
- mongodb - Mongo根据字段删除对象数组中的重复项
- java - 在服务中使用 ViewModel
- android - 如何使用 Android 上导航栏上方的空间?
- swift - 如何按可能为 nil 的键进行分组并获取具有非可选键类型的字典?
- python - 比较不同列中的两条数据时,Pandas if 语句连接字符串错误
- android - 按字符串值对 ArrayList 排序为双精度
- perl - 如何从 perl 中的 fstat 获取本地 mtime?
- powershell - Is it possible to register powershell scheduled job from another scheduled job?
- python-3.x - Query Oracle database from Cloud Foundry using Python
- r - Pivot_longer 6 列到 3 列