我有 2 个 EF 实体:
public partial class CustomerEntity
{
public int CustomerId { get; set; }
public string CustomerName { get; set; }
public virtual ICollection<RoleEntity> Roles { get; set; }
}
public partial class RoleEntity
{
public int RoleId { get; set; }
public string RoleName { get; set; }
}
这是我的插入方法:
public int? InsertCustomer(CustomerEntity customer)
{
_context.CustomerEntities.Add(customer);
try
{
return _context.SaveChanges();
}
catch (DbEntityValidationException exception)
{
return null;
}
}
这是创建新客户的方法:
public int CreateNewCustomer(string Name)
{
// Some mapping to CustomerEntity
var _customerEntity = new CustomerEntity
{
CustomerName = Name,
Roles = new List<RoleEntity>
{
new RoleEntity
{
RoleId = 1
}
}
};
return InsertCustomer(_customerEntity);
}
RoleEntity 是一个“查找”表,这意味着它具有预设记录并且永远不会有新记录。
每次创建新的 CustomerEntity 时,它都会有一个或多个角色。如何在不在数据库中创建新角色的情况下插入新的 CustomerEntity?我上面的 CreateNewCustomer 方法将在数据库中插入新客户和新角色,而我只想要其角色引用数据库中现有角色(id 1)的新客户。