【发布时间】:2020-09-11 16:02:48
【问题描述】:
如何使用 Linq 将记录插入到多个表中?
我有三个相关的表Contact、Phone 和Email,是否可以先创建联系人,然后再创建电话或电子邮件。由于电话和电子邮件使用 ContactID 作为外键
这是我的 linq 表达式:
var Contact = Mapper.Map<Contact>(request.CreateContactInformation);
Contact.CreatedBy = request.CreateContactInformation.CreatedBy;
Contact.CreatedDate = SystemClock.UtcNow;
Contact.UpdatedBy = request.CreateContactInformation.UpdatedBy;
Contact.UpdatedDate = SystemClock.UtcNow;
await Context.AddAsync(Contact);
await Context.SaveChangesAsync();
var phones = Mapper.Map<Phone>(request.CreateContactInformation);
phones.ContactID = Contact.ID;
phones.PhoneNumber = request.CreateContactInformation.PhoneNumber;
Context.AddAsync(phones);
await Context.SaveChangesAsync();
var email = Mapper.Map<Email>(request.CreateContactInformation);
email.ContactID = Contact.ID;
email.EmailAddress = request.CreateContactInformation.Email;
Context.AddAsync(email);
await Context.SaveChangesAsync();
但是我得到这个异常错误
内部服务器错误。错误内容:System.ArgumentException:不能 创建一个抽象类型 ....EF.Base.BaseEntity 的实例。 (范围 'type') at ...AsyncTransactionInterceptor.InterceptAsync[T](Task`1 任务,字符串方法名)
【问题讨论】:
-
看起来我们需要更多关于您的模型的详细信息来解决问题。如果模型中有一些抽象方法。
-
请分享您的模型和映射模型。
标签: c# asp.net asp.net-mvc linq asp.net-core