У меня есть JSON данные, как это:магазин JSON объект данных в базу данных в ASP.NET MVC (Entity Framework)
{
"id":"",
"firstName":"John",
"lastName":"Doe",
"phones":[
{
"value":"555-555-555",
"$$hashKey":"object:8"
},
{
"value":"444-444-444",
"$$hashKey":"object:10"
}
],
"emails":[
{
"value":"[email protected]",
"$$hashKey":"object:12"
},
{
"value":"[email protected]",
"$$hashKey":"object:18"
}
],
"tags":[
{
"value":"friend",
"$$hashKey":"object:14"
},
{
"value":"john",
"$$hashKey":"object:16"
}
],
"address":"Route 44",
"city":"NY",
"bookmarked":"",
"notes":"It's John"
}
Я хочу сохранить это JSON данные в базу данных, используя рамки сущности ASP.NET MVC (Использование базы данных Microsoft SQL). Моя модель автоматически генерируется из базы данных с использованием модели данных сущности данных ADO.NET. Проблема, с которой я столкнулся, заключается в том, что по какой-то причине она не будет хранить электронные письма/телефоны и теги в базе данных. Я пробовал все, что мог найти, и никто из них не работал для меня. Кто-нибудь знает, где проблема, и как я могу хранить этот JSON в моей базе данных?
EDIT 1:
После отлаживать контакт переменной в контроллере я замечаю, что электронная почта, теги и данные телефоны Модель пустуют. Я не знаю, как и почему они пустые ...
Также я добавляю CONSTRAINT всех внешних ключей
Вот модель базы данных:
это автоматически генерируется модель из базы данных (модели данных EF)
public partial class Contact
{
public Contact()
{
this.Emails1 = new HashSet<Email>();
this.Phones1 = new HashSet<Phone>();
this.Tags1 = new HashSet<Tag>();
}
public int id { get; set; }
public string firstname { get; set; }
public string lastname { get; set; }
public string address { get; set; }
public string city { get; set; }
public Nullable<byte> bookmarked { get; set; }
public string notes { get; set; }
public virtual ICollection<Email> Emails1 { get; set; }
public virtual ICollection<Phone> Phones1 { get; set; }
public virtual ICollection<Tag> Tags1 { get; set; }
}
}
и здесь модель для телефона/Метки/таблиц E-mail (это то же самое с другим именем в одном столбце)
public partial class Email
{
public int id { get; set; }
public int id_contact { get; set; }
public string email1 { get; set; }
public virtual Contact Contact1 { get; set; }
}
и здесь функция добавления данных в базу данных:
public string AddContact(Contact contact)
{
if (contact != null)
{
db.Contacts.Add(contact);
db.SaveChanges();
return "Contact Added";
}
else
{
return "Invalid Record";
}
}
Какая ошибка вы столкнулись? – Ofiris
@Ofiris нет ошибки ... телефоны, теги и данные электронной почты из объекта JSON не хранятся в базе данных ... – jureispro
Что делать, если вы меняете эти коллекции 'HashSet' в 'List '? –
dbc