Сначала я строю базу данных с помощью entityframework, используя код.Цель состоит в том, чтобы синхронизировать удаленную базу данных с вызовом веб-сервиса.У меня уже есть структурированные сущности, созданные для функции вызова веб-службы.
Как мне нужно кодировать контекст дБ для создания следующей ассоциации?
cart.cs передает cart_row через AssociationsCartAux следующим образом
public class order
{
[Key]
public long? id { get; set; }
public long? id_cart { get; set; } //which is a foreign key
public string invoice_number { get; set; }
....
}
public class cart
{
public long? id { get; set; }
...
public AssociationsCartAux associations { get; set; }
}
public class AssociationsCartAux : PrestaShopEntity
{
[Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public long? id_virtual { get; set; }
public List<cart_row> cart_rows { get; set; }
public AssociationsCartAux()
{
this.cart_rows = new List<cart_row>();
}
}
public class cart_row
{
[Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public long? id_cartRow_fictive { get; set; }
public long? id_product { get; set; }
public int quantity { get; set; }
....
}
Я попробовал следующий код в моем файле dbcontext
public DbSet<cart> cart { get; set; }
public DbSet<cart_row> cart_row { get; set; }
public DbSet<order> order { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<AssociationsCartAux>()
.HasMany(p => p.cart_rows)
.WithMany().Map(c =>
{
c.ToTable("cart_assocation");
});
Когда я запускаю код, он строит следующие таблицы
dbo.carts
dbo.cart_row
dbo.AssociationsCartAuxes
dbo.cart_assocation <=== АССОЦИАЦИЯ МЕЖДУ КОРОБКОЙ И КАРТОЙ </p>1024 *
AssociationsCartAux_id_virtual
cart_row_id_cartRow_fictive
при перезагрузке синхронизации данных ==> без проблем при перезагрузке данныхсинхронизация с обновлением заказа ==> dbo.AssociationsCartAuxes удваивает по объему добавление к существующим данным, несмотря на обновление текущих данных и добавление только новых.Вовлечение потерянной ассоциации linq между cart и cart_row.Что позволяет мне предположить, что у меня нет правильной сборки моего dbcontext.
Я не знаком с структурой сущностей, поэтому я попытался каким-то образом сделать это, поместив AssociationsCartAux.cs в качестве ComplexType, но не работал из-заобъект cart_row внутри.
Заранее благодарим вас за любую помощь.
Для дополнительной информации я указал способ размещения данных в таблицах
foreach (cart panier in listcart)
{
var result = ctx.cart.SingleOrDefault(b => b.id == panier.id);
if (result == null)
{
ctx.cart.Add(panier);
ctx.SaveChanges();
}
}
foreach (order commande in listorder)
{
var result = ctx.order.SingleOrDefault(b => b.id == commande.id);
if (result == null)
{
ctx.order.Add(commande);
ctx.SaveChanges();
}
}