因此,我使用 Code First 方法来构建应用程序并在将实体保存在数据库中时遇到了一个小问题。
这是我的实体:
public class Customer
{
public Customer()
{
Addresses = new List<Address>();
PhoneNumbers = new List<Phone>();
}
public Guid CustomerID { get; set;}
public virtual ICollection<Address> Addresses { get; set;}
public virtual ICollection<Phone> PhoneNumbers { get; set;}
public virtual Address MailingAddress {get; set;}
public virtual Phone DefaultPhone {get; set;}
}
现在,这会在 Address 和 Phone 表中创建一个名为 Customer_CustomerID 的条目,并在 Customer 表中创建 DefaultPhone_PhoneID 和 MailingAddress_AddressID 的条目,这两个都是 Guid。
每当我保存我的实体时,我都会收到以下消息:
"Inner Exception: Unable to determine a valid ordering for dependent operations. Dependencies may exist due to foreign key constraints, model requirements, or store-generated values.”
我感觉这与这些实体的连接方式有关,您是否注意到有什么问题或我遗漏了什么?
这是实体的保存方式:
public ActionResult CreateCustomer(Address address, Phone phone)
{
Customer cust = new Customer();
repository.Phone_Save(phone);
cust.PhoneNumbers.add(phone);
cust.DefaulPhone = phone;
repository.Address_Save(address);
cust.Addresses.add(address);
cust.MailingAddress = address;
repository.Customer_Save(cust);
}
public void Customer_Save(Customer customer);
{
Customer entity = context.Customers.Find(customer.CustomerID);
if (entity == null)
{
context.Customers.Add(customer);
entity = customer;
}
else
{
context.Entry(entity).CurrentValues.SetValues(customer);
}
context.SaveChanges();
context.Entry(entity).Reload();}