QueriesとContactRepositoryの2つのクラスがあります。
public static class Queries
{
public static Contact GetContactByName(CEntities context, string name)
{
return (from Contact c in context.Contacts
where c.Name == name
select c).FirstOrDefault();
}
}
public class ContactRepository
{
private CEntities _dbContext;
public ContactRepository()
{
_dbContext = new CEntities();
}
public void CreateContactAddress(string contactName, string address, string city, string state, string zip)
{
int contactId;
ContactAddress ca = new ContactAddress();
contactId = Queries.GetContactByName(_dbContext, contactName).Id;
ca.ContactId = contactId;
ca.Address = address
ca.City = city;
ca.State = state;
ca.Zip = zip;
_dbContext.ContactAddresses.AddObject(ca);
_dbContext.SaveChanges();
}
}
CreateContactAddress()を呼び出すと、SaveChanges()メソッドがクラッシュして次のエラーが発生します。
依存操作の有効な順序を判別できません。依存関係は、外部キーの制約、モデル要件、またはストアで生成された値が原因で存在する可能性があります。
LINQクエリをCreateContactAddress()メソッド自体に移動でき、すべてが完全に機能します。誰かが何が起こっているのか説明できますか?