Я получаю исключение InvalidCaseException при добавлении одного объекта отношения к одному. Он не срабатывает при добавлении не в SaveChanges.EF InvalidCastException С отношением один ко многим
Невозможно привести объект типа 'System.Collections.Generic.List`1 [учетная_запись_пользователя] ввести ' UserAccount.
Это Тринг случаю коллекцию X к одному экземпляру X
(Родитель или одно юридическое лицо)
[System.Xml.Serialization.XmlRootAttribute(Namespace="", IsNullable=false), Serializable()]
public class Merchant
{
/// <summary>
/// Standard ID
/// </summary>
[Key]
[DatabaseGenerated(System.ComponentModel.DataAnnotations.Schema.DatabaseGeneratedOption.Identity)]
public int ID { get; set; }
[DataType(DataType.Text), MaxLength(100)]
/// <summary>
/// UserFriendly Name
/// </summary>
public string MerchantName { get; set; }
/// Billing Information
/// </summary>
public virtual ICollection<BillingTransactions> BillingTransactions { get; set; }
/// <summary>
/// List of Accounts for this merchant (pulled from DBAccounts)
/// </summary>
public virtual ICollection<UserAccount> UserAccounts { get; set; }
}
(ребенок или многие)
public class UserAccount
{
private string loginID;
[Key]
[DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
/// <summary>
/// Standard ID
/// </summary>
public int ID { get; set; }
public int MerchantId { get; set; }
[ForeignKey("ID")]
public Merchant Merchant { get; set; }
//Obviously there are more properties here....
}
Я создаю новый объект следующим образом:
public void CreateNewMerchant(UserAccount useraccount)
{
Merchant merchant;
if (useraccount.Merchant == null) //New unknown merchant
{
merchant = new Model.Merchant.Merchant();
merchant.UserAccounts = new List<UserAccount>();
merchant.UserAccounts.Add(useraccount);
}
else
{
merchant = useraccount.Merchant;
}
ServiceBase<Merchant> sb = new Core.ServiceBase<Merchant>();
base.Add(merchant);
base.Save();
}
Это для интерфейса мастера типа формы. Первый шаг - создать учетную запись пользователя. Следующим шагом будет заполнение новой информации о продавце. Шаги мастера создают дочерний объект дочернего объекта и пустой родительский элемент, а затем создают родительский объект на следующем шаге.
Мой код создает пустой/пустой родительский элемент и добавляет дочерний/useraccount к пустому купе и добавляет в базу данных.
Почему я получаю исключение исключения?
Спасибо, что сработал. Я могу попытаться собрать свои собственные подсказки и подсказки для этого материала. Стандартные учебники очень смущали имена иностранных ключей и правильные методы для этого. – DanScan